以前学习C语言资料6

来源:互联网 发布:限制上网的软件 编辑:程序博客网 时间:2024/05/02 22:21

MQ期末押题
main()
{
  int a=14,b=15,x;
  char c='A';
  x=(a&&b)&&(c<'B');   /* kao cha && || ! */   /* zhen wei 1, jia wei 0 */

  printf("%d",x);

/* 1 */

main()
{
  int x,y;
  scanf("%d",&x);
  y=x>12?x+10:x-12;   /* kao tiao jian yun suan fu */
                       /* pan duan x shi fou da yu 12, ruo guo da yu
                         ze zhi xing x+12, fou ze x-12 */
  printf("%d\n",y);
}
/* x=3 shi y=x-12=-9    x=13 shi y=x+10=23 */

main()
{
 int a=0;
 a+=(a=8);
 printf("%d\n",a);
} /* 16 */

main(){ int a=1,b=10;
do{b-=a; a++;}
while(b--<0);
printf("a=%d,b=%d",a,b);
}

#include<stdio.h>
void main()
{
 char c;
 int a=0,b=0,d=0,e=0;
 while((c=getchar())!='\n')
 {
  if(c>='a'&&c<='z'||c>='A'&&c<='Z')
     a++;
  else if(c==' ')
  b++;
  else if(c>='0'&&c<='9')
  d++;
  else
       e++;
 }
 printf("%d,%d,%d,%d",a,b,d,e);
}

void f(int c)
{
 int a=0;
 static int b=0;
 a++;
 b++;
 printf("%d,a=%d,b=%d\n",c,a,b);
}
main()
{
 int k;
 for(k=1;k<=2;k++)
 f(k);
}

main()
{
 long x=-123456l;
 printf("%ld\n",x);   /* bi xu xie ld , zhi xie d jiu hui shu chu
                         cuo wu jie guo 117616 */
}

main()
{
 int x,y;
 scanf("%d",&x);
 y=x>12?x+10:x-12;
 printf("%d\n",y);
}

f()
{
 int a=2;
 static b=3;
 a++;
 b++;
 printf("a=%d,b=%d\n",a,b);
}
main()
{
 f();
 f();
}

/* a=3;b=4;
   a=3;b=5;  */

main()
{
  int k;
  int a[3][3]={1,2,3,4,5,6,7,8,9};
  for(k=0;k<3;k++)
  printf("%d",a[k][2-k]);

/* 357 */
/* 1 2 3
   4 5 6
   7 8 9  shu chu yi tiao dui jiao xian */

main()
{
 int a=5,b=0,c=0;
 if(a==b+c)    /* b+c=0; a!=b  ze zhi xing else yu ju */
   printf("***\n");
 else
   printf("$$$\n");
}
/* $$$ */

main()
{
 int a[10]={7,3,5,2,9,1,0,6,8,4};
 int i=0,j=9,t;
 while(i<j)
 {
  t=a[i];
  a[i]=a[j];
  a[j]=t;
  i+=2;
  j-=2;
 }
 for(i=0;i<10;i+=2)
 printf("%d",a[i]);
}  /*  46108  */

#include<stdio.h>
main()
{
  int i,j;
  for(i=0;i<=9;i++)    /* i<=9 ke yi gai wei i<10 */
    {
       j=i*10+6;
       if(j%3!=0) continue;  /* continue bu neng yong break */
       printf("%d,",j);     /* ru guo printf("%d,",j); jie guo shi bu                                yi yang de. jie guo shi 6,66,96 */
    }
}
/* 66696 */

main()
{
 int x,y,t;
 x=y=3;
 t=++x||++y;
 printf("%d",t);
}
/* 1 */

#include<stdio.h>
main()
{
 int a=1,b=10;
 do
 {
  b-=a;
  a++;
 }
  while(b--<0);
  printf("a=%d,b=%d\n",a,b);

/* a=2,b=8 */

感觉这几个很好呀!题很简单的,但是很容易出错的。请仔细看看了
main()
{
 int i;
 int k;
 for(i=0;i<4;i++,i++)
 for(k=1;k<3;k++);
 printf("*");
}
SHN:为什么是一个*呢?明明应是****么?!这就是你一不小心了,看没看见 for(k=1;k<3;k++);它后面可是有一个;的。这里的;不是打错了,而是代表一个空循环。这样双重for 循环只进行空循环,最后执行一次printf("*");输出一个*就完了,是不是很简单呀,但是一不小心就想错了,这回道“;”的不可小视了吧!哈哈。
#include<stdio.h>
void fun(
int *a,int *b)
{
 int *c;
 c=a;
 a=b;
 b=c;
}
main()
{
 int x=3;
 int y=5;
 int *p=&x;
 int *q=&y;
 fun(p,q);
  printf("%d,%d,",*p,*q);
 fun(&x,&y);
  printf("%d,%d\n",*p,*q);
}
SHN:一看这道题考的就是参数传递,那看看结果吧,是 5,3,3,5么?还是3,5,5,3?都不是,正确答案是3,5,3,5。好好想想,不明白时看一下指向地址。地址中存的数据在指向地址改变时,数据是不会改变的。好像是说我把门锁上了,然后钥匙在了人M的家里,在我回家想开门的时候可以到M家取钥匙,然后开门进自已家;我也可能是把钥匙放在了Q的家里,那样我只要是在回家时去Q家取钥匙也能回家是吧!如果是我把钥匙放在了M家里,但是M家人突然有事外出,但是又找一到我,M把钥匙放在了Q家,我是不是到了Q家取回钥匙也可以回家呢?答案是肯定的,因为锁子是没变的,家也是没变的。我当然是回到自已家了。哈哈,想想这道题吧

这个是很有意思的。你可以输入一个字符,也可以输入一个字符串。当你输入数字和大写字母时它会原样输出,当你输入小写英文字母时它会隔一个变为大写的。
UKD:想想是哪句起了关键作用呢?
#include<stdio.h>
main()
{
 char a=0;
 char ch;
 while((ch=getchar())!='\n')
 {
  if(a%2!=0&&(ch>='a'&&ch<='z'))
  ch=ch-'a'+'A';
  a++;
  putchar(ch);
 }
 printf("\n");
}
TW:是if(a%2!=0&&(ch>='a'&&ch<='z'))进行的关键判断
SHN:我想让小写不变化,而大写的每隔一个变化一个那怎么变呢?要是想隔三个或四个变化一次呢?哈哈,很简单的自已变化一下吧,哈哈。

原创粉丝点击