答案.docx
- 文档编号:12279526
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:85
- 大小:59.60KB
答案.docx
《答案.docx》由会员分享,可在线阅读,更多相关《答案.docx(85页珍藏版)》请在冰豆网上搜索。
答案
第1章概论
一、BACCDDDDCCCDDCBA
二、
1.编辑、编译、链接、运行
2.编译错误、链接错误、运行错误和逻辑错误
3.静态调试跟踪打印跟踪调试
4.算法
5.空间
第2章数据类型和表达式
一、ADAAADBACBBDDA
二、
1.intchar
2.43
3.单引号表示形式、数值表示形式、转义字符表示形式
第3章顺序结构程序设计及常用函数
一、选择题
1.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
以下所示的输入形式中正确的是(D)。
(注:
□代表空格字符)
A.10□X□20□Y〈回车〉B.10□X20□Y〈回车〉
C.10□X〈回车〉D.10X〈回车〉
20□Y〈回车〉20Y〈回车〉
2.若定义floata;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用(B)
A.scanf(“%f”,&a);B.scanf(“%5.2f”,&a);
C.scanf(“%6.2f”,&a);D.scanf(“%f”,a);
3.程序段:
intx=12;doubley=3.141593;printf("%d%8.6f",x,y);的输出结果是(A)。
A.123.141593B.12□3.141593C.12,3.141593D.123.1415930
4.已知整型变量k和g,则下列程序段输出结果为(D)。
intk,g;
k=011;g=11;
printf(“%d,%x\n”,++k,g++);
A.12,BB.10,3C.12,3D.10,B
5.已知字符'A'的ASCII代码值是65,字符变量cl的值是'A',c2的值是'D'。
执行语句printf("%d,%d",c1,c2-2);后,输出结果是(C)。
A.A,BB.A,68C.65,66D.65,68
二、填空题
1.已知定义:
charc='';inta=1,b;(此处c的初值为空格字符),执行b=!
c&&a;后b的初值为0。
2.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为3。
3.若变量x,y已定义为int类型且x的值为99,y的值为9,请将输出语句printf("x/y=%d\n",x/y);
补充完整,使其输出的计算结果形式为:
x/y=11。
4.执行以下程序后的输出结果是a=14。
main()
{inta=10;
a=(3*5,a+4);printf("a=%d\n",a);
}
5.以下程序运行后的输出结果是10。
#include
main()
{intx=20;printf("%d",0 6.执行以下程序时输入1234567,则输出结果是1234_。 #include main() {inta=1,b; scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b); } 三、编程题 1.编写程序求两个数的平均数。 #include voidmain() { intfirst,second; printf("Inputtwointegers: "); scanf("%d%d",&first,&second); printf("Theaverageof%dand%dis%.1f\n",first,second,(first+second)/2.0); } 2.编写程序,输出下面结果,注意,双引号也要输出: “I'mastudent! ” #include voidmain() { printf("\"I\'mastudent! \"\n"); } 3.编写程序,输入一个小写字母,将其转换为大写字母输出。 例如输入b,则输出B,要求不用toupper函数。 (提示: 小写字母和对应的大写字母的ASCII码值相差32)。 voidmain() { charch; ch=getchar(); ch-=32; putchar(ch); } 4.编写程序,输入一个华氏温度f,输出其相应的摄氏温度c。 华氏温度和摄氏温度的转换公式为: #include voidmain() { floatf,c; scanf(“%f”,&f); c=5.0*(f-32)/9; printf(“华氏温度%5.2f转换为摄氏温度为: %5.2f\n”,f,c); } 将一个3位数反序显示,如输入123,则显示321。 #include voidmain() { intnumber; printf("Inputathree-digitnumber: "); scanf("%d",&number); printf("Invertedsequenceof%dis%d%d%d\n",number,number%10,number/10%10,number/100); } 第4章选择结构程序设计 一、选择题 1.已有定义: charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是(B)。 A.isupper(c)B.'A'<=c<='Z' C.'A'<=c&&c<='Z'D.c<=('z'-32)&&('a'-32)<=c 2.设有定义: intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A)。 A.k++B.k+=1C.++kD.k+1 3.当变量c的值不为2、4、6时,值也为“真”的表达式是()。 A.(c==2)||(c==4)||(c==6)B.(c>=2&&c<=6)||(c! =3)||(c! =5) C.(c>=2&&c<=6)&&! (c%2)D.(c>=2&&c<=6)&&(c%2! =1) 4.以下选项中,当x为大于1的奇数时,值为0的表达式(D)。 A.x%2==1B.x/2C.x%2! =0D.x%2==0 5.若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是(A)。 A.a<>b+cB.ch=getchar()C.a==b+cD.a++ 6.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是(C)。 A.if(x++);B.if(x>y&&y! =0); C.if(x>y)x--D.if(y<0){;} elsey++;elsex++; 7.在嵌套使用if语句时,C语言规定else总是(A)。 A.和之前与其具有相同缩进位置的if配对B.和之前与其最近的if配对 C.和之前与其最近的且不带else的if配对D.和之前的第一个if配对 8.有以下程序段 inta,b,c; a=10;b=50;c=30; if(a>b)a=b,b=c;c=a; printf("a=%db=%dc=%d\n",a,b,c); 程序的输出结果是(A)。 A.a=10b=50c=10B.a=10b=50c=30 C.a=10b=30c=10D.a=50b=30c=50 9.有下列程序: main() {inta=0,b=0,c=0,d=0; if(a=1)b=1;c=2; elsed=3; printf("%d,%d,%d,%d\n",a,b,c,d);} 程序输出(D)。 A.0,1,2,0B.0,0,0,3C.1,1,2,0D.编译有错 10.若有说明语句: intw=1,x=2,y=3,z=4; 则表达试w>x? w: z>y? z: x的值是(A)。 A.4B.3C.2D.1 11.若有定义: floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是(C)。 A.switch(x)B.switch((int)x); {case1.0: printf("*\n");{case1: printf("*\n"); case2.0: printf("**\n");}case2: printf("**\n");} C.switch(a+b)D.switch(a+b) {case1: printf("*\n");{case1: printf("*\n"); case2+1: printf("**\n");}casec: printf("**\n");} 12.以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是(B)。 A.switch(a) B.switch(a==1) {case: a=b;break;{case0: a=b;break; default: a++;}case1: a++;} C.switch(a)D.switch(a==1) {default: a++;break;{case1: a=b;break; case1: a=b;}case0: a++;} 13.有以下程序 #include voidmain() {intx=1,y=0,a=0,b=0; switch(x) {case1: switch(y) {case0: a++;break; case1: b++;break; } case2: a++;b++;break; case3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 程序的运行结果是(D)。 A.a=1,b=0B.a=2,b=2C.z=1,b=1D.a=2,b=1 二、填空题 1.下列程序运行后的输出结果是1。 main() {intx,a=1,b=2,c=3,d=4; x=(a a: b;x=(x x: c;x=(d>x)? x: d; printf("%d\n",x);} 2.以下程序的运行结果是#&。 voidmain() {inta=2,b=7,c=5; switch(a>0) {case1: switch(b<0) {case1: printf("@");break; case2: printf("! ");break; } case0: switch(c==5) {case0: printf("*");break; case1: printf("#");break; case2: printf("$");break; } default: printf("&"); } printf("\n"); } 三、编程题 1.编程判断一个整数是奇数还是偶数。 #include voidmain() { intnumber; printf("Inputaninteger: "); scanf("%d",&number); if(number%2==0) printf("%disanevennumber\n",number); else printf("%disanoddnumber\n",number); } 2.编程判断两个数据之间的逻辑关系,即判断两数据是大于、小于还是等于关系。 #include voidmain() { intfirst,second; printf("Inputtwointegers: "); scanf("%d%d",&first,&second); if(first==second) printf("%disequalto%d\n",first,second); else if(first>second) printf("%disgreaterthan%d\n",first,second); else printf("%dislessthan%d\n",first,second); } 3.输入年份,判断它是否是闰年(如果年号能被400整除,或能被4整除,而不能被100整除,则是闰年,否则不是)。 voidmain() { intyear; scanf("%d",&year); if(year%400==0||(year%4==0&&year%100==0)) printf("%d是闰年\n",year); else printf("%d不是闰年\n",year); } 4.设计一个简单的计算器程序,能输入整型运算数和基本运算符(+,-,*,/),输出计算结果。 例如: 输入2+6,输出2+6=8。 #include main() { floata,b,result; charop; scanf("%f%c%f",&a,&op,&b); switch(op) { case'+': result=a+b;printf("=%f",result);break; case'-': result=a-b;printf("=%f",result);break; case'*': result=a*b;printf("%f",result);break; case'/': if(b==0.0)printf("error! \n"); result=a/b; printf("=%f",result); default: printf("errorduetotheillegalinput! \n"); } } 5.输入某年某月某日,判断这一天是这一年的第多少天? #include voidmain() { intyear,month,day,sum=0; printf("Inputyear-month-day: \n"); scanf("%d-%d-%d",&year,&month,&day); switch(month) { case12: sum+=30; case11: sum+=31; case10: sum+=30; case9: sum+=31; case8: sum+=31; case7: sum+=30; case6: sum+=31; case5: sum+=30; case4: sum+=31; case3: sum+=28; case2: sum+=31; case1: sum+=day; } if(((year%400==0)||((year%4==0)&&(year%100! =0)))&&month>2) sum+=1; printf("Totaldaysare%d\n",sum); } 第5章循环结构程序设计 一、选择题 1.要求通过while循环不断读入字符,当读入字母N时结束循环。 若变量已正确定义,下列正确的程序段是(A)。 A.while((ch=getchar())! ='N')printf("%c",ch); B.while(ch=getchar()! ='N')printf("%c",ch); C.while(ch=getchar()=='N')printf("%c",ch); D.while((ch=getchar())=='N')printf("%c",ch); 2.若变量已正确定义,有以下程序段 i=0; doprintf("%d,",i);while(i++); printf("%d\n",i); 其输出结果是(B)。 A.0,0B.0,1C.1,1D.程序进入无限循环 3.当执行以下程序段时(A)。 x=-1; do { x=x*x; }while(! x); A.循环体执行一次B.循环体将执行两次 C.循环体将执行无限次D.系统将提示有语法错误 4.有以下程序 #include main() {inty=9; for(;y>0;y--) if(y%3==0)printf("%d",--y); } 程序的运行结果是(C)。 A.741B.963C.852D.875421 5.执行语句: for(i=1;i++<4;);后,变量i的值是(C) A3B4C5D不定 6.以下不构成无限循环的语句或语句组是(A)。 A.n=0;B.n=0; do{++n;}while(n<=0);while (1){n++;} C.n=10;D.for(n=0,i=1;;i++)n+=i; while(n);{n--;} 7.以下程序段中的变量已正确定义 for(i=0;i<4;i++,i++) for(k=1;k<3;k++);printf("*"); 程序段的输出结果是(D)。 A.********B.****C.**D.* 8.有以下程序 #include main() {inti,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++)m=m%j; printf("%d\n",m); } 程序的运行结果是(B)。 A.0B.1C.2D.3 9.有以下程序 main() {inti,j; for(i=1;i<4;i++) {for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j); printf("\n"); } } 程序运行后的输出结果是(B)。 A.1*1=11*2=21*3=3B.1*1=11*2=21*3=3 2*1=22*2=42*2=42*3=6 3*1=33*3=9 C.1*1=1D.1*1=1 1*2=22*2=42*1=22*2=4 1*3=32*3=63*3=93*1=33*2=63*3=9 10.以下程序中,while循环的循环次数是(D) main() {inti=0; while(i<10) {if(i<1)continue; if(i==5)break; i++; } } A1B10C6D死循环,不能确定次数 11.有以下程序 #include voidmain() {intx=8; for(;x>0;x--) {if(x%3){printf("%d,",x--);continue;} printf("%d,",--x); } } 程序的运行结果是(D)。 A.7,4,2B.8,7,5,2,C.9,7,6,4,D.8,5,4,2, 二、填空题 1.当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行0次。 #include main() {charch; while((ch=getchar())==’0’)printf("#"); } 2.以下程序的输出结果是54321。 #include main() {intn=12345,d; while(n! =0){d=n%10;printf("%d",d);n/=10;} } 3.以下程序运行后的输出结果是5。 #include main() {inta=1,b=7; do{b=b/2;a+=b;}while(b>1); printf("%d\n",a);} 4.若有定义: intk;,以下程序段的输出结果是##2##4。 for(k=2;k<6;k++,k++)printf("##%d",k); 5.以下程序的输出结果是_ACE_____。 #include main() {inti; for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A'); printf("\n"); } 6.以下程序的输出结果是1。 #include main() {inti,j,sum; for(i=3;i>=1;i--) {sum=0; for(j=1;j<=i;j++)sum+=i*j; } printf("%d\n",sum); } 三、编程题 1.编写程序,显示100~200之间能被7除余2的所有整数。 #include"stdio.h" main() {inti; for(i=100;i<=200;i++) {if(i%7==2) printf("\t%d\t",i); } } 2.输入n个整数,求这n个整数中的最大数、最小数和偶数平均数。 #include voidmain() { inti,n,data,max=0,min=0,even=0,evennumber=0; printf("Pleaseinputthenumberofdata: "); scanf("%d",&n); printf("Pleaseinputthedata: \n"); scanf("%d",&data); max=data; min=data; if(data%2==0) { even=even+data; evennumber++; } for(i=1;i { scanf("%d",&data); if(data>max) max=data; e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)