实验指导书基本概念测试习题答案bak.docx
- 文档编号:26895960
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:66
- 大小:44.53KB
实验指导书基本概念测试习题答案bak.docx
《实验指导书基本概念测试习题答案bak.docx》由会员分享,可在线阅读,更多相关《实验指导书基本概念测试习题答案bak.docx(66页珍藏版)》请在冰豆网上搜索。
实验指导书基本概念测试习题答案bak
1数据类型与表达式
1.1基本概念
1、一个C语言程序总是从()。
A、主过程开始执行 B、主函数开始执行
C、子程序开始执行 D、主程序开始执行
【答案】B
2、C语言程序从main()函数开始执行,所以这个函数要写在()。
A、程序文件的开始B、程序文件的最后
C、它所调用的函数的前面D、程序文件的任何位置
【答案】D
3、下列关于C语言的叙述错误的是()。
A、大写字母和小写字母的意义相同
B、不同类型的变量可以在一个表达式中
C、在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D、同一个运算符号在不同的场合可以有不同的含义
【答案】A
4、在C语言中,错误的int类型的常数是()。
A、32768B、0C、037D、0xAF
【答案】A
5、在C语言中,整数-8在内存中的存储形式是()。
A、1111111111111000B、1000000000001000
C、0000000000001000D、1111111111110111
【答案】A
6、C语言中字符型(char)数据在内存中的存储形式是()。
A、原码B、补码C、反码D、ASCII码
【答案】D
7、已知a、b、c为int类型变量,若有输入语句:
scanf("a=%db=%dc=%d",&a,&b,&c);为使a值为10,b值为20,c值为30,从键盘输入数据的正确形式应当是()。
A、102030<回车> B、a=10b=20c=30<回车>
C、10<回车>20<回车>30<回车>D、a=10<回车>b=20<回车>c=30<回车>
【答案】B
8、以下能正确定义整型变量x、y和z并为其赋初值5的语句是()。
A、intx=y=z=5; B、intx,y,z=5;
C、intx=5,y=5,z=5; D、x=5,y=5,z=5;
【答案】C
9、已知ch是字符型变量,则不正确的赋值语句是()。
A、ch=5+9; B、ch='\0';C、ch='7'+'9'; D、ch='a+b';
【答案】D
10、设x,y是float型变量,则不正确的赋值语句是()。
A、++x; B、y=int(5);C、x*=y+1; D、x=y=0;
【答案】B
11、若a为int类型变量,则执行以下程序段后a的值为()。
a=5;
a*=a/=a++;
A、2 B、1 C、40 D、3
【答案】A
12、若a和b均为int型变量,则执行以下程序断后x的输出是()。
x=15;y=15;
printf("%d\n",x%=(y%=2));
A、0 B、1 C、6 D、12
【答案】A
13、设a、b、c、d均是int类型变量,为了使以下程序段的输出为:
1234+123+12+1,正确的输入形式应当是()。
scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d);
printf("%4d+%3d+%2d+%1d",a,b,c,d);
A、1234123121<回车>B、1234123412341234<回车>
C、1234+1234+1234+1234<回车>D、1234+123+12+1<回车>
【答案】D
14、设c1、c2均是char类型变量,则以下不正确的函数调用是()。
A、scanf("c1=%cc2=%c",&c1,&c2);B、getchar()
C、putchar(c2); D、putchar(c1,c2)
【答案】D
15、逻辑运算符两侧运算对象的数据()。
A、只能是0或1B、只能是0或非0正数
C、只能是整型或字符型数据D、可以是任何类型的数据
【答案】D
16、判断char型变量c1是否为大写字母的正确表达式是()。
A、'A'<=c1<='Z'B、(c1>='A')&(c1<='Z')
C、(c1>='A')&&(c1<='Z')D、('A'<=c1)AND('Z'>=c1)
【答案】C
17、设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是()。
A、'i'&&'j'B、i<=j
C、i||j+k&&j-kD、!
((i k||1) 【答案】D 18、设ch是char类型变量,其值是A,则表达式ch=(ch>='A'&&ch<='Z')? (ch+32): ch的值是()。 A、Z B、A C、a D、z 【答案】C 19、若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。 则以下不能满足要求的表达式是()。 A、num%2==1 B、! (num%2==0) C、! (num%2) D、num%2 【答案】C 20、已知longi=32768;执行语句printf("%d",i);屏幕显示()。 A、-1B、-32768C、1D、32768 【答案】B 1.2阅读程序题 21、下面程序的输出结果是()。 #include main() {intx=10; {intx=20; printf("%d,",x); } printf("%d\n",x); } A、10,20B、20,10C、10,10D、20,20 【答案】B 22、若a、b、c均为int型变量,则执行以下程序段后的输出结果为()。 b=(a=10,a+5,c=10); printf("a=%d,b=%d,c=%d\n",a,b,c); c=(a=10,b=5,a+b); printf("a=%d,b=%d,c=%d\n",a,b,c); A、a=10,b=15,c=10 B、a=10,b=10,c=10 a=10,b=5,c=10a=10,b=5,c=10 C、a=10,b=10,c=10 D、a=10,b=10,c=10 a=10,b=5,c=15 a=10,b=5,c=5 【答案】C 23、以下程序的输出结果是()。 main() {intx=10,y=10; printf("%d%d\n",x――,――y); } A、1010B、99C、910D、109 【答案】D 24、以下程序的输出结果是()。 main() {intn=1; printf("%d%d%d\n",n,n++,n--); } A、111B、101C、110D、121 【答案】B 25、以下程序的输出结果是()。 main() {intx=0x02ff,y=0x0ff00; printf("%d\n",(x&y)>>4|0x005f); } A、127B、255C、128D、1 【答案】A 26、下面程序的输出结果是()。 main() {inta=111; a=a^00; printf("%d,%o\n",a,a); } A、111,157B、0,0C、20,24D、7,7 【答案】A 27、以下程序的输出结果是()。 main() {floata; a=1/100000000; printf("%g",a); } A、0.00000e+00B、0.0C、1.00000e-07D、0 【答案】D 1.3程序填空题 28、下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include main() {inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a=①; b=②; a=③; printf("a=%d,b=%d\n",a,b); } 【答案】①a+b②a-b③a-b 2控制结构 2.1基本概念 1、以下正确的if语句是()。 A、if(n>0)printf("%f",n) printf("%f",-n); B、if(n>0) {n=n+m;printf("%f",n);} elseprintf("%f",-n); C、if(n>0) {n=n+m;printf("%f",n);}; elseprintf("%f",-n); D、if(n>0) {n=n+m;printf("%f",n)}; elseprintf("%f",-n); 【答案】B 2、以下程序()。 main() {intx1=3,x2=0,x3=0; if(x1=x2+x3) printf("****"); else printf("####"); } A、输出: **** B、输出: #### C、存在语法错误 D、无输出结果 【答案】B 3、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定: else子句总是与()。 A、缩排位置相同的if配对B、其之前最近且不带else的if配对 C、其之前最近的if配对D、第一个if配对 【答案】B 4、以下关于switch语句和break语句的描述中正确的是()。 A、在switch语句中必须使用break语句 B、break语句只能用于switch语句体中 C、break语句只能用于循环语句中 D、在switch语句中使用break语句或continue语句的作用相同 【答案】D 5、若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。 则以下不能满足要求的表达式是()。 A、A%2==1 B、! (A%2==0) C、 ! (A%2) D、 A%2 【答案】C 6、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是()。 if(x>y) z=x; x=y; y=z; A、 x=10, y=20, z=30 B、 x=20, y=30, z=30 C、 x=20, y=30, z=10 D、 x=20, y=30, z=20 【答案】B 7、设有程序段()。 intx=10; while(x=0) x=x-1; A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行D、循环体语句只执行一次 【答案】C 8、语句while(! y)中的表达式! y等价于()。 A、y==0B、y! =1 C、y! =0 D、y==1 【答案】A 9、以下关于do-while循环不正确的描述是()。 A、d0-while的循环体至少执行一次 B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作 D、do-while的循环体可以是复合语句 【答案】B 10、设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是()。 for(y=100;x! =y;++x,y++) printf("****\n"); A、循环体只执行一次 B、是无限循环 C、循环体一次都不执行 D、for语句中存在语法错误 【答案】C 11、以下程序段中的do-while循环()。 m=-1; do {m=m*m; }while(! m); A、是死循环 B、执行二次 C、执行一次 D、有语法错误 【答案】C 12、以下关于for循环的正确描述是()。 A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判断表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 【答案】D 13、语句for(表达式1;;表达式3)等价于()。 A、for(表达式1;0;表达式3)B、for(表达式1;1;表达式3) C、for(表达式1;表达式1;表达式3)D、for(表达式1;表达式3;表达式3) 【答案】B 14、若k为整型变量,则以下for循环的执行次数是()。 for(k=2;k==0;) printf("%d",k--); A、无限次 B、0次 C、1次 D、2次 【答案】B 15、以下程序段的执行结果是()。 intx=-3; do {printf("%d\n",x++); }while(! x); A、-3 B、-2 C、-1D、陷入死循环 【答案】A 16、以下程序段中是死循环的是()。 A、intn=1; B、intn=1; while(! n)do{n--; n++;}while(n); C、intn=1;D、for(n=5;n<1;); do{n++; }while(n); 【答案】C 17、以下能正确计算1×2×3×…×10的程序段是()。 A、doB、do {k=1;n=1;{k=1;n=0; n=n*k;n=n*k; k++;k++; }while(k<=10);}while(k<=10); C、k=1;n=1;D、k=1;n=0; dodo {n=n*k;{n=n*k; k++;k++; }while(k<=10);}while(k<=10); 【答案】C 18、若有以下程序段: for(m=1;m<=100;m++) {scanf("%d",&y); if(y<0) continue; printf("%3d",m); } 正确的描述是()。 A、)当y<0时整个循环结束B、y>=0时什么也不输出 C、printf函数永远也不执行D、)最多允许输出100个非负整数 【答案】D 19、以下程序段等价于()。 for(k=100;k<=200;k++) {if(k%3==0) continue; printf("%4d",k); } A、for(k=100;(k%3)&&k<=200;k++) printf("%4d",k); B、for(k=100;(k%3)||k<=200;k++) printf("%4d",k); C、for(k=100;k<=200;k++) if(k%3! =0)printf("%4d",k); D、for(k=100;k<=200;k++) {if(k%3) printf("%4d",k); else continue; break; } 【答案】C 2.2阅读程序题 20、下面程序的输出结果是()。 main() {inta=1,i=a+1; do {a++; }while(! ~i++>3); printf("%d\n",a); } A、1B、2C、3D、4 【答案】B 21、下面程序的输出结果是()。 main() {chars[12]="abook"; printf("%.4s",s); } A、abook! B、abook! <四个空格>C、aboD、格式描述错误,输出不确定 【答案】C 22、下面程序的输出结果是()。 main() {inta,b; scanf("%2d%3d",&a,&b); printf("a=%db=%d\n",a,b); } A、a=12b=34B、a=123b=45C、a=12b=345D、语句错误 【答案】C 23、以下程序的输出结果是()。 main() {inta=0,b=1,c=0,d=20; if(a)d=d-10; elseif(! b) if(! c)d=15; elsed=25; printf("d=%d\n",d); } A、d=10B、d=15C、d=20D、d=25 【答案】C 24、下面程序的输出结果为()。 main() {inta=1,b=0; switch(a) {case1: switch(b) {case0: printf("**0**"); break; case1: printf("**1**"); break; } case2: printf("**2**"); break; } } A、**0**B、**0****2**C、**0****1****2**D、有语法错误 【答案】B 25、若执行下述程序时从键盘输入34,则输出结果是()。 #include main() {inta,b,s; scanf("%d%d",&a,&b); s=a; if(a s*=s; printf("%d\n",s*s); } A、186B、256C、324D、400 【答案】B 26、下面程序的输出是()。 main() {intx=1,y=0,a=0,b=0; switch(x) {case1: switch(y) {case0: a++;break; case1: b++;break; } case2: a++;b++;break; } printf("a=%d,b=%d\n",a,b); } A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=2 【答案】A 27、下面程序的运行结果是()。 main() {intm=0; while(m<=2) {m++; printf("%d",m); } printf("\n"); } A、1 B、12 C、123D、1234 【答案】C 28、下面程序的输出结果是()。 main() {intx,i; for(i=1;i<=100;i++) {x=i; if(++x%2==0) if(++x%3==0) if(++x%7==0) printf("%d",x); } } A、3981B、4284C、2668D、2870 【答案】C 29、下面程序的输出结果是()。 main() {intk=0; charc='A'; do {switch(c++) {case'A': k++;break; case'B': k--; case'C': k+=2;break; case'D': k=k%2;contiue; case'E': k=k+10;break; default: k=k/3; } k++; }while(c<'C'); printf("k=%d\n",k); } A、k=1B、k=2C、k=3D、k=4 【答案】D 30、在执行以下程序时,为了使输出结果为t=4,则给a和b输入的值应满足的条件是()。 #include main() {ints,t,a,b; scanf("%d,d",&a,&b); s=1; t=1; if(a>0)s=s+1; if(a>b)t=s+t; elseif(a==b)t=5; elset=2*s; printf("t=%d\n",t); } A、a>bB、aa>b 【答案】C 31、从键盘上输入"446755"时,下面程序的输出是()。 #include main() {intc; while((c=getchar())! ='\n') {switch(c-'2') {case0: case1: putchar(c+4); case2: putchar(c+4);break; case3: putchar(c+3); default: putchar(c+2);break; } }printf("\n"); } A、888988B、668966C、88898787D、66898787 【答案】C 32、假定从键盘上输入"3.6,2.4<回车>",下面程序的输出是()。 #include main() {floatx,y,z; scanf("%f,%f",&x,&y); z=x/y; while (1) {if(fabs(z)>1.0) {x=y; y=z; z=x/y; } elsebreak; } printf("%f\n",y); } A、1.500000B、1.600000C、2.000000D、2.400000 【答案】B 33、下面程序的输出结果是()。 main() {inti,j,k=10; for(i=0;i<2;i++) {k++; {intk=0; for(j=0;j<=3;j++) {if(j%2)continue; k++; } } k++; } printf("k=%d\n",k); } A、k=4B、k=8C、k=14D、k=18 【答案】C 2.3程序填空题 34、下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main() {floatx,amax,amin; scanf("%f",&x); amax=x; amin=x; while(①) {if(x>amax)amax=x;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 指导书 基本概念 测试 习题 答案 bak
![提示](https://static.bdocx.com/images/bang_tan.gif)