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:我想让小写不变化,而大写的每隔一个变化一个那怎么变呢?要是想隔三个或四个变化一次呢?哈哈,很简单的自已变化一下吧,哈哈。