学院期中考试错题改错-创新互联
1.已知int k,m=1;执行语句k=-m++;后k的值是(-1)。
10年积累的成都做网站、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有黄陂免费网站建设让你可以放心的选择与我们合作。2.若有定义和语句:int s,p; s=p=5;
p=s++,++p,p+2,p++;
则执行语句后p的值是(7)。//注意所求的是p的值
3.已知各变量的类型说明如下:
int m=8,n,a,b;
unsigned long w=10;
double x=3.14,y=0.12;
则以下符合C语言语法的表达式是(A)。
A.a+=a-=(b=2)*(a=8) B.n=n*3=18
C.x%3 //只有整形可以用% D.y=float(m)
4.设a=5,b=6,c=7,d=8,m=2,n=2,则执行(m=a>b)&&(n=c>d)后n的值为(2)。
//&&会短路,n的值不变
5.已知x=45,y='a',z=0;则表达式(x>=z&&y<'z'||!y)的值为(1)。
// &&优先级高于||
6.下面程序输出的是(v1=8,v2=8,v3=8,v4=8)。
main()
{ char *s="12134211";
int k,v1=0,v2=0,v3=0,v4=0;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case 1:v1++;
case 2:v2++;
case 3:v3++;
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
//定义的是字符,而case里面的是数字,匹配不上,所以始终是default里面的执行,又因为没有break,下面的也跟着执行,所以答案都是8。
7.下列程序的输出结果是____12_______________。
void main()
{ int x=3,y=5;
printf("%d",x=(x--)*(--y));}//注意--在前后的区别
8.以下程序的输出结果为__1234_______。
int a=1234;
printf("%2d\n",a);
// %2d的意思是输出占2位,若位数不够就直接输出。假如输出的数是9,对应的输出的 9,9前面有一空格。
9.以下程序段的输出结果为(261)。
int a=177;
printf("%o",a);
//这里的%o表示以八进制输出
如果是自己计算的话,八进制计算方法可以是这样:
177除以8商22,余数为1
22除以8商2,余数为6
2除以8商0,余数为2
注意各次除法的余数:
八进制结果就是261。
10.定义int x,y;执行y=(x=1,++x,x+2);后,y的值为(4)。
11.定义int x=10,y,z;执行y=z=x;x=y==z;后,x的结果为(1)。
12.若输入字母c,程序的输出结果为___c,C_____;若输出字符*,程序将(继续等待用户输入下一个字符)。
main()
{ char c1,c2;
c1=getchar();
while(c1<97||c2>122) c1=getchar();//这个循环确保输入的数据c1是小写字母
c2=c1-32;
printf("%c,%c\n",c1,c2);
}
13.执行以下语句后,x的值为(1),z的值为(0)。
int x,y,z;
x=y=z=0;
++x||++y&&++z;//||的短路
14.运行以下的程序后,如果从键盘上输入china#<回车>,则输出的结果为____5,5_______。
#include
main()
{ int v1=0,v2=0;
char ch;
while((ch=getchar())!='#')
switch(ch)
{ case 'a':
case 'h':
default:v1++;
case '0':v2++;
}
printf("%d,%d\n",v1,v2);
}
//当ch = 'c'时,从第一个case判断,一直到default才匹配,此时执行v1++;
注意,由于default后面是没有break语句的,所以程序会继续执行v2++;
15.输入一串字符,统计其中字母个数,数字个数,空格个数及其他符号的个数。
答案:#include
void main()
{ int n1=0,n2=0,n3=0,n4=0;
char c;
while((c=getchar())!='*')
{ if(c>='a'&&c<='z'||c>='A'&&c<='Z') n1++;
else if(c>='0'&&c<='9') n2++;
else if(c==' ') n3++;
else n4++;
}
printf("%d,%d,%d,%d",n1,n2,n3,n4);
}
16.设计一个计算器,能实现“+,-,*,%,/”五种计算。
如输入:3+2,输出:3+2=5
答案:#include
int main()
{ int n1,n2;
char c;
scanf("%d%c%d",&n1,&c,&n2);
switch(c)
{case '+':printf("%d%c%d=%d",n1,c,n2,n1+n2);break;
case '-':printf("%d%c%d=%d",n1,c,n2,n1-n2);break;
case '*':printf("%d%c%d=%d",n1,c,n2,n1*n2);break;
case '/':printf("%d%c%d=%d",n1,c,n2,n1*1.0/n2);break;
case '%':printf("%d%c%d=%d",n1,c,n2,n1%n2);break;
}
}
17.输入两个正整数m,n(假设m #include 你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
int main()
{ int i,j,m,n,flag=1;
scanf("%d %d",&m,&n);
for(i=m;i
for(j=2;j{
if(i%j==0)
{flag=0;break;}
}
if(flag) printf("%d\n",i);//注意flag的应用
}
}
网页标题:学院期中考试错题改错-创新互联
转载注明:http://azwzsj.com/article/edppe.html