文章目录[隐藏]

本答案对应课程为:点我自动跳转查看
本课程起止时间为:2019-10-07到2020-01-10
本篇答案更新状态:已完结

第一章 程序设计概述 第一章测验

1、 问题:以下不正确的叙述是( )。
选项:
A:在C程序中所用的变量必须先定义赋初值后使用
B:程序中,APH和aph是两个不同的变量
C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变
D:可以定义一个名字叫做void的变量
答案: 【可以定义一个名字叫做void的变量

2、 问题:下列字符序列中,不可用作C语言标识符的是( )。
选项:
A:b70
B:#ab
C:symbol
D:a_1
答案: 【#ab

3、 问题:下列数据中,为字符串常量的是( )。
选项:
A:A
B:”house”
C:How do you do.
D:$abc
答案: 【“house”

4、 问题:以下数据中,不正确的数值或字符常量是( )。
选项:
A:8.9e1.2
B:10
C:0xff00
D:82.5
答案: 【8.9e1.2

5、 问题:以下数据中,不正确的常量是( )。
选项:
A:0
B:5L
C:o13
D:9861
答案: 【o13

6、 问题:C语言源程序的基本单位是( )。
选项:
A:过程
B:函数
C:子程序
D:标识符
答案: 【函数

7、 问题:以下数据中,不正确常量是( )。
选项:
A:c
B:66
C:0xaa
D:5.5f
答案: 【c

8、 问题:以下数值中,不正确的八进制数或十六进制数是( )。
选项:
A:ox16
B:016
C:-016
D:0xaaaa
答案: 【ox16

9、 问题:以下标识符中,不能作为合法的C用户定义标识符的是( )。
选项:
A:answer
B:to
C:signed
D:_if
答案: 【signed

10、 问题:下列程序的输出结果是( )。void main(){ int a=7,b=5; printf( “%d “,b=b/a);}
选项:
A:0
B:5
C:1
D:不确定值
答案: 【0

11、 问题:2019年9月的TIOBE编程语言排行榜上,前4名不包括( )
选项:
A:C
B:C++
C:Python
D:FoxPro
答案: 【FoxPro

12、 问题:关于计算机存储容量,不正确的是( )
选项:
A:1KB=1024B
B:1MB=1024KB
C:1GB=1024MB
D:1TB=1024MB
答案: 【1TB=1024MB

13、 问题:C程序的编译环境不包括( )
选项:
A:VC2010
B:Code::Blocks
C:Dev C++
D:JDK
答案: 【JDK

14、 问题:#include 是( )
选项:
A:函数
B:编译预处理指令
C:有语法错误
D:什么都不是
答案: 【编译预处理指令

15、 问题:在C语言中,字符型数据在内存中以字符的( )形式存放
选项:
A:国标码
B:GB2312
C:ASCII码
D:Unicode编码
答案: 【ASCII码

第二章 输入输出函数 第二章测验

1、 问题:下面代码执行后,输出的结果是( )#include int main(){ printf(“%d” , (int)3.14159265 ); return 0; }
选项:
A:3
B:4
C:3.0
D:4.0
答案: 【3

2、 问题:下面代码执行后,输出的结果是( )#include int main(){ printf(“%d” , (int)4.56 ); return 0; }
选项:
A:4
B:5
C:4.0
D:5.0
答案: 【4

3、 问题:下面代码执行后,输出的结果是( )#include int main(){ printf(“%.0f” , 3.14159265 ); return 0; }
选项:
A:3
B:4
C:3.0
D:4.0
答案: 【3

4、 问题:下面代码执行后,输出的结果是( )#include int main(){ printf(“%.0f” , 4.56 ); return 0; }
选项:
A:4
B:5
C:4.0
D:5.0
答案: 【5

5、 问题:下面哪一种不属于基本程序结构( )
选项:
A:顺序结构
B:选择结构
C:循环结构
D:层次结构
答案: 【层次结构

6、 问题:对用户使用的变量、数组、函数等操作对象取的名字,下面哪个描述不正确( )
选项:
A:以字母或下划线开头,由字母、数字和下划线三种字符组成
B:不能定义与32个”关键字”相同的标识符
C:严格区分大小写
D:不用区分大小写
答案: 【不用区分大小写

7、 问题:已经有如下的代码:char c=’A’;要打印输出一个大写字母A,下面哪一个代码无法做到( )
选项:
A:putchar(c);
B:putchar(65);
C:putchar(‘A’);
D:putchar(A);
答案: 【putchar(A);

8、 问题:变量a和b的值分别是7和9,要输出如下的内容:a=7b=9下面正确的代码是( )
选项:
A:printf(“a=%b,b=%d” ,a,b);
B:printf(“a=%b\tb=%d” ,a,b);
C:printf(“a=%d,b=%d” ,a,b);
D:printf(“a=%db=%d” ,a,b);
答案: 【printf(“a=%db=%d” ,a,b);

9、 问题:让用户从键盘输入一个数字,存入双精度(double)类型的变量d,正确的代码是( )
选项:
A:scanf(“%f” ,&d);
B:scanf(“%lf” ,&d);
C:scanf(“%f” ,d);
D:scanf(“%lf” ,d);
答案: 【scanf(“%lf” ,&d);

10、 问题:以下不符合C语言语法的赋值语句是( )。
选项:
A:j++;
B:j=5;
C:k=24, k4;
D:y=float(j);
答案: 【y=float(j);

11、 问题:执行下列语句后变量x和y的值是()。y=10; x=y++;
选项:
A:x=10, y=10
B:x=11, y=11
C:x=10, y=11
D:x=11, y=10
答案: 【x=10, y=11

12、 问题:下列语句的输出结果是()。 printf( “%d”, (int)(2.5+3.0)/3 );
选项:
A:有语法错误不能通过编译
B:2
C:1
D:0
答案: 【1

13、 问题:以下的代码中,正确的赋值语句是()。
选项:
A:a=1,b=2;
B:5+=1;
C:1=a;
D:y=int(x);
答案: 【a=1,b=2;

14、 问题:对以下语句的功能描述正确的是:int r=2;float s = 1/2 * 3.14 r r;
选项:
A:s是半径为2的圆的面积
B:s是半径为2的 半圆的面积
C:运算结果为0,不能计算是半圆的面积
D:其他三个说法均不正确
答案: 【运算结果为0,不能计算是半圆的面积

15、 问题:关于占位符,不正确的是( )
选项:
A:char类型对应的占位符是%c
B:double类型对应的占位符是%d
C:float类型对应的占位符是%f
D:需要根据数据类型,正确的选取占位符
答案: 【double类型对应的占位符是%d

第三章 运算符及选择结构 第三章测验

1、 问题:在C语言中,能代表逻辑值“真”的是( )。
选项:
A:True
B:大于0的数
C:非0整数
D:非0的数
答案: 【非0的数

2、 问题:下列运算符中,不属于关系运算符的是( )。
选项:
A:<
B:>
C:>=
D:!
答案: 【!

3、 问题:以下运算符中,优先级最高的运算符是( )。
选项:
A:=
B:!=
C:*(乘号)
D:()
答案: 【()

4、 问题:以下程序的输出结果是:void main(){int a=1;switch(a){case 1:printf(“hello”);case 3:printf(” word”);case 5:printf(“!”);break;default: printf(“error”);}}
选项:
A:hello
B:hello word
C:hello word!
D:hello word!error
答案: 【hello word!

5、 问题:以下程序的输出是:void main(){int a=1;switch(a){default: printf(“error”);case 1:printf(“hello”);break;case 3:printf(” word”);break;case 5:printf(“!”);break;}}
选项:
A:hello
B:hello word
C:hello word!
D:error
答案: 【hello

6、 问题:以下程序的运行结果是:void main(){int a=5;if(a=0)printf(“a=%d”,a);else{++a;printf(“a=%d”,a);}}
选项:
A:a=1
B:a=0
C:a=5
D:a=6
答案: 【a=1

7、 问题:#include int main(){ int a=5,b=4,c=3,d; d=(a>b>c); printf(“%d”,d); return 0;}此代码的输出结果是( )
选项:
A:0
B:3
C:4
D:5
答案: 【0

8、 问题:程序中的“=”是“等于”符号,其功能是判断两个表达式是否相等。
选项:
A:正确
B:错误
答案: 【错误
分析:【是双等号==】

9、 问题:switch语句不能嵌套到if语句中。
选项:
A:正确
B:错误
答案: 【错误

10、 问题:if(表达式) 语句1;else 语句2 ;此结构中,如表达式为a>10,则else的条件隐含为a<10。
选项:
A:正确
B:错误
答案: 【错误

11、 问题:switch…case结构中条件表达式和常量表达式值可以为float类型。
选项:
A:正确
B:错误
答案: 【错误

12、 问题:可以用switch结构实现的程序都可以使用if语句来实现。
选项:
A:正确
B:错误
答案: 【正确

13、 问题:switch后面圆括号内的表达式的值和case后面的常量表达式的值都必须是整型或字符型,不允许是浮点型。
选项:
A:正确
B:错误
答案: 【正确

14、 问题:C语言规定,else总是与它上面、最近的、尚未配对的if配对。
选项:
A:正确
B:错误
答案: 【正确

15、 问题:所有的if语句能够实现的逻辑,都可以修改为用switch实现。
选项:
A:正确
B:错误
答案: 【错误

第四章 循环 第4章测验

1、 问题:1、有以下程序#include #include void main( ) { int a=15,b=21,m=0; switch(a%3) { case 0: m++;break; case 1: m++; switch(b%2) { default:m++; case 0:m++;break; } } printf(“%d”,m); }程序运行后的输出结果是______。
选项:
A:1
B:2
C:3
D:4
答案: 【1

2、 问题:t为int类型,进入下面的循环之前,t的值为0,while(t=1){ …… }则以下叙述中正确的是______。
选项:
A:循环控制表达式的值为0
B: 循环控制表达式的值为1
C:循环控制表达式不合法
D:以上说法都不对
答案: 【 循环控制表达式的值为1

3、 问题:有如下程序main(){ int n= 9; while(n>6) { n–; printf(“%d”,n); }}该程序的输出结果是______。
选项:
A:987
B:876
C:8765
D:9876
答案: 【876

4、 问题:有以下程序段 int k=0; while(k=1) k++;while循环执行的次数是______。
选项:
A:无限次
B: 有语法错,不能执行
C:一次也不执行
D:执行1次
答案: 【无限次

5、 问题:以下程序的输出结果是______。main(){ int x=10, y=10, i; for( i=0; x>8; y=++i) printf(“%d %d “,x–, y );}
选项:
A:10 1 9 2
B:9 8 7 6
C:10 9 9 0
D:10 10 9 1
答案: 【10 10 9 1

6、 问题:请读程序 #include main() { int ai, bi ; for(ai = 1 , bi= 1 ; ai <= 100 ; ai++) { if(bi>= 20) break ; if (bi%3 == 1) { bi += 3 ;continue ; } bi -= 5 ; } printf(“%d”, ai) ; }上面程序的输出结果是______。
选项:
A:7
B:8
C:9
D:10
答案: 【8

7、 问题:下面程序的运行结果是:() #include main() {int a=1,b=10;do{b-=a;a++;}while(b–<0);printf(“a=%d,b=%d”,a,b); }
选项:
A:a=3,b=11
B:a=2,b=8
C:a=1, b=-1
D:a=4,b=9
答案: 【a=2,b=8

8、 问题:若x是int型变量,且有下面的程序片段for(x=3;x<6;x++) printf( (x%2)?(“%d”):(“##%d”),x);上面程序片段的输出结果是______。1 3 2 ##3 3 ##3 4 3##4 ##4 4 4##5 5 **5 ##5
选项:
A:1
B:2
C:3
D:4
答案: 【4

9、 问题:有如下程序main( ){ int i,sum; for(i=1;i<=3;sum++) sum +=i; printf(“%d”,sum);}该程序的执行结果是______。
选项:
A:输出随机值
B:3
C:死循环,无法输出
D:6
答案: 【死循环,无法输出

10、 问题:有以下程序main(){ int i=0,s=0; do{ if(i%2) { i++; continue; } i++; s+=i; } while(i<7); printf(“%d”,s);}执行后输出的结果是______。
选项:
A:16
B:12
C:28
D:21
答案: 【16

11、 问题:以下程序的功能是、按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下、main() { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf(“%f”,&score); sum+=score; } ave=sum/4.0; printf(“NO%d:%f”,n,ave); } }上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是______。
选项:
A:sum=0.0;
B:sum+=score;
C: ave=sum/4.0;
D:printf(“NO%d:%f”,n,ave);
答案: 【sum=0.0;

12、 问题:以下程序的输出结果是______。 main() { int num=0; while(num<=2) { num++; printf(“%d”,num); } }(1) (2) (3) (4)1 1 1 12 2 23 34
选项:
A:(1)
B:(2)
C:(3)
D:(4)
答案: 【(2)

13、 问题:以下程序中,while循环的循环次数是______。main(){ int i=0; while(i<10) { if(i<1) continue; if(i==5)break; i++; } ……}
选项:
A:1
B:10
C:6
D:死循环,不能确定次数
答案: 【死循环,不能确定次数

14、 问题:执行下面程序片段的结果是______。 int x=23; do { printf(“%2d”,x–); } while(!x);
选项:
A:打印出321
B:打印出23
C:不打印任何内容
D:陷入死循环
答案: 【打印出23

15、 问题:以下程序的输出结果是______。 main() { int a,b; for(a=1,b=1; a<=100; a++) { if(b>=10) break; if(b%3==1) { b+=3; continue; } } printf(“%d”,a); }
选项:
A:101
B:6
C:5
D:4
答案: 【4

16、 问题:以下程序执行后sum的值是______。 main() { int i, sum; for(i=1;i<6;i++) sum+=i; printf(“%d”,sum); }
选项:
A:15
B:14
C:不确定
D:0
答案: 【不确定

17、 问题:以下的for循环: for( x=0,y=0; (y!=123)&&(x<4); x++ ) ;
选项:
A:是无限循环
B:循环次数不定
C:执行4次
D:执行3次
答案: 【执行4次

18、 问题:有如下程序main(){ int i,sum=0; for(i=1; i; i–) sum +=i; printf(“%d”,sum);}该程序的执行结果是______。
选项:
A:输出随机值
B:1
C:死循环,无法输出
D:0
答案: 【1

19、 问题:有以下程序main(){ int i; for(i=0;i<3;i++) switch(i) { case 1: printf(“%d”,i); case 2: printf(“%d”,i); default: printf(“%d”,i); }}执行后输出的结果是______。
选项:
A:011122
B:012
C:012020
D:120
答案: 【011122

20、 问题:下面的程序 main() { int x=3; do{ printf(“%d”,x-=2); }while(!(–x) ); } 的执行结果是?
选项:
A:输出的是1
B:输出的是1和-2
C:输出的是3和0
D:是死循环
答案: 【输出的是1和-2

第五章 函数 第五章测验

1、 问题:有以下程序float fun(int x,int y){ return(x+y); }void main(){int a=2,b=5,c=8;printf(“%3.0f”,fun((int)fun(a+c,b),a-c));}程序运行后的输出结果是( )。
选项:
A:编译出错
B:9
C:21
D:9.0
答案: 【9

2、 问题: C语言程序中,当函数调用时( )。
选项:
A:实参和形参各占一个独立的存储单元
B:实参和形参共用一个存储单元
C:可以由用户指定是否共用存储单元
D:计算机系统自动确定是否共用存储单元
答案: 【实参和形参各占一个独立的存储单元

3、 问题:有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是( )。
选项:
A:3
B:4
C:5
D:6
答案: 【3

4、 问题:下列哪种数据不存放在动态存储区中( )。
选项:
A:函数形参变量
B:局部自动变量
C:函数调用时的现场保护和返回地址
D:局部静态变量
答案: 【局部静态变量

5、 问题:以下对C语言函数的有关描述中,正确的是( )。
选项:
A:调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B:C函数既可以嵌套定义又可以递归调用
C:函数必须有返回值,否则不能使用函数
D:C程序中有调用关系的所有函数必须放在同一个源程序文件中
答案: 【调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

6、 问题:以下描述正确的是( )。
选项:
A:函数调用可以出现在执行语句或表达式中
B:函数调用不能作为一个函数的实参
C:函数调用可以作为一个函数的形参
D:以上都不正确
答案: 【函数调用可以出现在执行语句或表达式中

7、 问题:C语言是由( )构成。
选项:
A:主程序和子程序
B:主函数和若干子函数
C:一个主函数和一个其他函数
D:主函数和子程序
答案: 【主函数和若干子函数

8、 问题:如果在一个函数的复合语句中定义了一个变量,则该变量( )。
选项:
A:只在该复合语句中有效,在该复合语句外无效
B:此定义方法错误,其变量为非法变量
C:在该函数中任何位置都有效
D:在本程序的源文件范围内均有效
答案: 【只在该复合语句中有效,在该复合语句外无效

9、 问题:若有以下程序#include void f(int n);main(){ void f(int n);f(5);}void f(int n){printf(“%d”,n); }则以下叙述中不正确的是( )。
选项:
A:若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B:若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C:对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明
D:函数f无返回值,所以可用void将其类型定义为无值型
答案: 【对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明

10、 问题:请读程序:#includefunc( int a, int b){ int c;c=a+b;return c;}main(){ int x=6, y=7,z=8, r;r=func((x–,y–,x+y),z–);printf(“%d”,r);}上面程序的输出结果是( )
选项:
A:11
B:19
C:21
D:31
答案: 【19

11、 问题:下列说法不正确的是( )。
选项:
A:主函数main中定义的变量在整个文件或程序中有效
B:不同函数中,可以使用相同名字的变量
C:形式参数是局部变量
D:在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效
答案: 【主函数main中定义的变量在整个文件或程序中有效

12、 问题:C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( )。
选项:
A:void
B:int
C:float
D:double
答案: 【int

13、 问题:在C语言中,函数的隐含存储类别是( )。
选项:
A:auto
B:static
C:extern
D:无存储类别
答案: 【auto

14、 问题:以下函数值的类型是( )。fun (float x){ float y;y= 3*x-4;return y;}
选项:
A:int
B:不确定
C:void
D:float
答案: 【int

15、 问题:关于return语句,下列正确的说法是( )。
选项:
A:在主函数和其他函数中均要出现
B:必须在每个函数中出现
C:可以在同一个函数中出现多次
D:只能在除主函数之外的函数中出现一次
答案: 【可以在同一个函数中出现多次

16、 问题:以下说法中正确的是( )。
选项:
A: C语言程序总是从第一个的函数开始执行
B:在C语言程序中,要调用的函数必须在main()函数中定义
C: C语言程序总是从main()函数开始执行
D:C语言程序中的main()函数必须放在程序的开始部分
答案: 【 C语言程序总是从main()函数开始执行

17、 问题:有如下程序int func(int a,int b){ return(a+b); }main(){int x=2,y=5,z=8,r;r=func(func(x,y),z);printf(“%d”,r);}该程序的输出的结果是( )。
选项:
A:12
B:13
C:14
D:15
答案: 【15

18、 问题:在一个源程序文件中定义的全局变量的有效范围是( )。
选项:
A:本源程序文件的全部范围
B:一个C程序的所有源程序文件
C:函数内全部范围
D:从定义变量的位置开始到源程序文件结束
答案: 【从定义变量的位置开始到源程序文件结束

19、 问题:以下程序的输出结果是( )。fun(int x, int y, int z){ z=xx+yy; }main(){int a=31;fun(5,2,a);printf(“%d”,a);}
选项:
A:0
B:29
C:31
D: 不确定
答案: 【31

20、 问题:有以下程序#include int abc(int u,int v);main (){ int a=24,b=16,c;c=abc(a,b);printf(“%d”,c);}int abc(int u,int v){ int w;while(v) { w=u%v; u=v; v=w ;}return u;}
选项:
A:6
B:7
C:8
D:9
答案: 【8

第六章 数组 第六章测验

1、 问题:以下关于数组的描述正确的是( )。
选项:
A:数组的大小是固定的,但可以有不同的类型的数组元素。
B:数组的大小是可变的,但所有数组元素的类型必须相同。
C:数组的大小是固定的,所有数组元素的类型必须相同。
D:数组的大小是可变的,可以有不同的类型的数组元素
答案: 【数组的大小是固定的,所有数组元素的类型必须相同。

2、 问题:以下程序运行后,输出结果是( )。 #includemain() { int y=18,i=0,j,a[8]; do { a[i]=y%2; i++; y=y/2; }while(y>=1); for(j=i-1;j>=0;j–) printf(“%d”,a[j]); printf(“”);}
选项:
A:10000
B:10010
C:00110
D:10100
答案: 【10010

3、 问题:若有以下数组定义,其中不正确的是( ) 。
选项:
A:int a[2][3];
B:int b[][3]={0,1,2,3};
C:int c[100][100]={0};
D:int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
答案: 【int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

4、 问题:若有以下的定义:int t[5][4];能正确引用t数组的表达式是( )。
选项:
A:t[2][4]
B:t[5][0]
C:t[0][0]
D:t[0,0]
答案: 【t[0][0]

5、 问题:以下程序的输出结果是( ) main(){int i, a[10];for(i=9;i>=0;i–) a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]);}
选项:
A:258
B:741
C:852
D:369
答案: 【852

6、 问题:在定义int n[5][6];后第10个元素是( )。
选项:
A:n[2][5]
B:n[2][4]
C:n[1][3]
D:n[1][4]
答案: 【n[1][3]

7、 问题:请读程序:#includef(int b[], int n){ int i, r; r=1; for(i=0; i<=n; i++) r=r*b[i]; return r;}main(){ int x, a[]={ 2,3,4,5,6,7,8,9}; x=f(a, 3); printf(“%d”,x);} 上面程序的输出结果是( )。
选项:
A:720
B:120
C:24
D:6
答案: 【120

8、 问题:若定义如下变量和数组: int i;intx[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。for(i=0;i<3;i++) printf(“%d”,x[i][2-i]);
选项:
A:1 5 9
B:1 4 7
C:3 5 7
D:3 6 9
答案: 【3 5 7

9、 问题:下面程序运行后,输出结果是( )。 main(){char ch[7]={ “65ab21”};int i,s=0;for(i=0; ch[i]>=’0’&&ch[i]<=’9′;i+=2) s=10*s+ch[i]- ‘0’;printf(“%d”,s);}
选项:
A:12ba56
B:6521
C:6
D:62
答案: 【6

10、 问题:若有定义和语句: char s[10]=”abcd”;printf(“%s”,s);则结果是(以下└┘代表空格) ( )。
选项:
A:输出abcd
B:输出a
C:输出abcd└┘└┘└┘└┘
D:编译不通过
答案: 【输出abcd

11、 问题:以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。void reverse(int a[ ],int n){ int i,t;for(i=0;i22】

12、 问题:以下程序运行后,输出结果是( )。main(){ int i,k,a[10],p[3];k=5;for(i=0;i<10;i++) a[i]=i;for(i=0;i<3;i++) p[i]=a[i(i+1)];for(i=0;i<3;i++) k+=p[i]2;printf(“%d”,k);}
选项:
A:20
B:21
C:22
D:23
答案: 【21

13、 问题:若有数组定义: char array [ ]=”China”; 则数组 array所占的空间为( )。
选项:
A:4个字节
B:5个字节
C:6个字节
D:7个字节
答案: 【6个字节

14、 问题:以下程序运行后输出结果是( )。 main(){ int n[3],i,j,k;for(i=0;i<3;i++) n[i]=0;k=2;for(i=0;i3】

15、 问题:下列程序的主要功能是输入10个整数存入数组a,再输入一个整数x,在数组a中查找x。找到则输出x在10个整数中的序号(从1开始);找不到则输出0。程序缺少的是 ( )。 #includemain(){ int i,a[10],x,flag=0; for(i=0;i<10;i++) scanf(“%d”,&a[i]); scanf(“%d”,&x); for(i=0;i<10;i++) if ( ____ ) { flag=i+1; break; } printf(“%d”,flag);}
选项:
A:x!=a[i]
B:!(x-a[i])
C:x-a[i]
D:!x-a[i]
答案: 【!(x-a[i])

16、 问题:在定义int m[ ][3]={1,2,3,4,5,6};后,m[1][0]的值是( )。
选项:
A:4
B:1
C:2
D:5
答案: 【4

17、 问题:在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。
选项:
A:整型常量
B:整型表达式
C:整型常量或整型表达式
D:任何类型的表达式
答案: 【整型常量或整型表达式

18、 问题:假定int类型变量占用4个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。
选项:
A:3
B:4
C:12
D:40
答案: 【40

19、 问题:以下程序运行后,输出结果是( )。 main(){ int n[5]={0,0,0},i,k=2;for(i=0;i0】

20、 问题:下面程序的输出是( )。fun(int h) { static int a[3]={1,2,3}; int k; for(k=0;k<3;k++) a[k]+=a[k]-h; for(k=0;k<3;k++) printf(“%d”,a[k]); return(a[h]); } main() { int t=1; fun(fun(t)); }
选项:
A:123159
B:135135
C:1,3,5, 0,4,8,
D:135-137
答案: 【135-137

21、 问题:若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;则数值为4的表达式是( )
选项:
A:a[g-c]
B:a[4]
C:a[‘d’-‘c’]
D:a[‘d’-c]
答案: 【a[‘d’-c]

22、 问题:以下对一维整型数组a的正确说明是( )。
选项:
A:int a(10);
B:int n=10,a[n];
C:int n; scanf(“%d”,&n); int a[n];
D:#define SIZE 10int a[SIZE];
答案: 【#define SIZE 10int a[SIZE];

23、 问题:以下程序的输出结果是( )。f( int b[ ], int m, int n){ int i,s=0;for(i=m;i10】

24、 问题:若有以下定义语句: float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};则表达式“x[1][1]*x[2][2]”的值是( )。
选项:
A:0.0
B:4.0
C:5.0
D:6.0
答案: 【0.0

25、 问题:阅读以下函数:fun(char s[],char t[]){int i=-1;while(++i,s[i]==t[i]&&s[i]!=’\0’);return(s[i]==’\0’&&t[i]==’\0’);}以上函数的功能是( )。
选项:
A:比较串s和t的长度
B:比较串s和t的大小
C:比较串s和t是否相等
D:将串t赋给串s
答案: 【比较串s和t是否相等

26、 问题:若给出以下定义: char x[]=”abcdefg”;char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’}; 则正确的叙述为( )。
选项:
A:数组x和数组y等价
B:数组x和数组y的长度相同
C:数组x的长度大于数组y的长度
D:数组x的长度小于数组y的长度
答案: 【数组x的长度大于数组y的长度

27、 问题:合法的数组定义是( )。
选项:
A:char a=”string”;
B:int a[5]={0,1,2,3,4,5};
C:int s=”string”;
D:char a[]={0,1,2,3,4,5};
答案: 【char a[]={0,1,2,3,4,5};

28、 问题:以下程序运行后,输出结果是( )。 main(){ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;i<4;i++) s+=aa[i][1];printf(“%d”,s);}
选项:
A:11
B:19
C:13
D:20
答案: 【19

29、 问题:下列程序执行后的输出结果是( )。void func1(int i);void func2(int i);char st[]=”hello,friend!”;void func1(int i){ printf(“%c”,st[i]);if(i<3){ i+=2; func2(i);}}void func2(int i){printf(“%c”,st[i]);if(i<3){ i+=2; func1(i);}}main(){int i=0; func1(i); printf(“”);}
选项:
A:hello
B:hel
C:hlo
D:hlm
答案: 【hlo

30、 问题:以下程序运行后,输出结果是( )。 main(){int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;for(k=0;k<4;k++)if(a1[i]1234】

31、 问题:不能把字符串:Hello!赋给数组b的语句是( )。
选项:
A:char str[10]= {‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘! ‘};
B:char str[10];str=”Hello!”;
C:char str[10];strcpy(str,”Hello!”);
D:char str[10]=”Hello!”;
答案: 【char str[10];str=”Hello!”;

32、 问题:下列语句中,不正确的是( )。
选项:
A:static char a[2]={1,2};
B:static char a[2]={ ‘1’, ‘2’};
C:static char a[2]={ ‘1’, ‘2’, ‘3’};
D:static char a[2]={ ‘1’};
答案: 【static char a[2]={ ‘1’, ‘2’, ‘3’};

33、 问题:下面的程序中______错误(每行程序前面的数字是行号)。1 #include 2 main()3 {4 float a[3]={0.0};5 int i;6 for(i=0;i<3;i++) scanf(“%d”,a[i]);7 for(i=1;i<3;i++)a[0]=a[0]+a[i];8 printf(“%f”,a[0]);9 }
选项:
A:没
B:第4行
C:第6行
D:第8行
答案: 【第6行

34、 问题:下述对C语言字符数组的描述中正确的是 ( )。
选项:
A:任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间
B:一维数组的元素在引用时其下标大小没有限制
C:任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间
D:一维数组的第一个元素是其下标为1的元素
答案: 【任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间

35、 问题:下述对C语言字符数组的描述中错误的是( )。
选项:
A:字符数组可以存放字符串
B:字符数组中的字符串可以整体输入、输出
C:可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值
D:不可以用关系运算符对字符数组中的字符串进行比较
答案: 【可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值

36、 问题:以下对一维数组m进行正确初始化的是( )。
选项:
A:int m[10]=(0,0,0,0) ;
B:int m[10]={ };
C:int m[ ]={0};
D:int m[10]; m[10]={10*2};
答案: 【int m[ ]={0};

37、 问题:执行下面的程序段后,变量k中的值为( )。 int k=3, s[2]; s[0]=k; k=s[1]*10;
选项:
A:不定值
B:33
C:30
D:10
答案: 【不定值

38、 问题:以下程序运行后,输出结果是( )。 main(){ int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf(“%d%d%d%d”,a[0][3],a[1][2],a[2][1],a[3][0]);}
选项:
A:0650
B:1470
C:5430
D:输出值不定
答案: 【0650

39、 问题:若说明:int a[2][3]; 则对a数组元素的正确引用是( ) 。
选项:
A:a(1,2)
B:a[1,3]
C:a[1>2][!1]
D:a[2][0]
答案: 【a[1>2][!1]

40、 问题:若有定义:int b[3][4]={0};则下述正确的是( ) 。
选项:
A:此定义语句不正确
B:没有元素可得初值0
C:数组b中各元素均为0
D:数组b中各元素可得初值但值不一定为0
答案: 【数组b中各元素均为0

第七章 指针 第7章测验

1、 问题:设P1 和P2 是指向同一个int 型一维数组的指针变量,k 为int 型变量,则不能正确执行的语句是 。
选项:
A:k=P1+P2;
B:P2=k;
C:P1=P2;
D:k=P1 * (P2);
答案: 【P2=k;

2、 问题:若有以下的定义: int a[ ]={1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10} , p=a ; 则值为3 的表式是 。
选项:
A:p+=2,
(p++)
B:p+=2 ,++p
C: p+=3,
p++
D: p+=2 ,++p
答案: 【p+=2,
(p++)】

3、 问题:说明语句:int *f(); 中,标识符代表的是:
选项:
A:一个用于指向整型数据的指针变量
B:一个用于指向一维数组的指针
C:一个用于指向函数的指针变量
D:一个返回值为指针型的函数名
答案: 【一个返回值为指针型的函数名

4、 问题:数组a的两个元素中各自存放了字符’a’、’A’的地址, char *s=”\t\Name\Address”;指针s所指字符串的长度为: 。
选项:
A:说明不合法
B:19
C:18
D:15
答案: 【15

5、 问题:定义:int a[9] ,*p=a;不能表示a[1] 的表达式是( )
选项:
A:p+1
B:a+1
C:a++
D:++p
答案: 【a++

6、 问题:int x ,pb; ,则正确的赋值表达式是
选项:
A:pb=&x
B:pb=x;
C:
pb=&x;
D:pb=x
答案: 【pb=&x

7、 问题:下列函数的功能是 。 int fun1(char * x) { char y=x; while(y++) ; return(y-x-1); }
选项:
A:求字符串的长度
B:比较两个字符串的大小
C:将字符串X 复制到字符串Y
D:将字符串X 连接到字符串Y 后面
答案: 【求字符串的长度

8、 问题:设有如下定义: char *aa[2]={“abcd”,”ABCD”}; 则以下说法中正确的是 。
选项:
A:aa 数组元素的值分别是”abcd”和ABCD”
B:aa 是指针变量,它指向含有两个数组元素的字符型一维数组
C: aa 数组的两个元素都是指针,分别指向两个字符串的首地址
D:aa 数组的两个元素中各自存放了字符
答案: 【 aa 数组的两个元素都是指针,分别指向两个字符串的首地址

9、 问题:分析下面函数,以下说法正确的是 。 swap(int p1,int p2) { int p; p=p1; p1=p2; p2=p; }
选项:
A:交换
p1和p2的值
B:正确,但无法改变
p1和p2的值
C:交换
p1和*p2的地址
D:可能造成系统故障,因为使用了空指针
答案: 【可能造成系统故障,因为使用了空指针

10、 问题:请读程序:#include #include void main(){ chars1=”ABCDEF”,s2=”aB”; s1++; s2++; printf(“%d”, strcmp( s1,s2));} 上面程序的输出结果是 。
选项:
A:正数
B:负数
C:零
D:不确定的值
答案: 【正数

11、 问题:下面函数的功能是 。 sss(char s ,char t ) { while((s)&&(t)&&(t++== s++)) ; return(s-t) ; }
选项:
A:求字符串的长度
B:比较两个字符串的大小
C:将字符串s 复制到字符串t 中
D:将字符串s 接续到字符串t 中
答案: 【比较两个字符串的大小

12、 问题:有如下程序段 int p ,a=10 ,b=1 ; p=&a ; a=p+b ; 执行该程序段后,a 的值为 。
选项:
A:12
B:11
C:10
D:编译出错
答案: 【11

13、 问题:若有以下定义和语句: double r=99 , p=&r ; p=r ; 则以下正确的叙述是 。
选项:
A:以下两处的p 含义相同,都说明给指针变量p 赋值
B:在”double r=99,
p=&r;”中,把r 的地址赋值给了p 所指的存储单元
C:语句”p=r;”把变量r 的值赋给指针变量p
D:语句”
p=r;”取变量r 的值放回r 中
答案: 【语句”*p=r;”取变量r 的值放回r 中

14、 问题:下面程序输出数组中的最大值,由s 指针指向该元素. void main() { inta[10]={6,7,2,9,1,10,5,8,4,3,},p,s; for(p=a, s=a;p-a<10; p++) if(【 】)s=p; printf(”The max:%d”,s): } 则在if 语句中的判断表达式应该是 。
选项:
A: p>s
B:
p>s
C:a[p]>a[s]
D: p-a>p-s
答案: 【
p>*s】

15、 问题:类型相同的两个指针变量之间,不能进行的运算是 。
选项:
A: <
B:=
C:+
D:-
答案: 【+

16、 问题:设有如下的程序段: char str[ ]=”Hello” ; char ptr ; ptr=str ; 执行上面的程序段后 ,(ptr+5)的值为 。
选项:
A:’o’
B:’\0′
C:不确定的值
D: ‘o’的地址
答案: 【‘\0’

17、 问题:若有以下定义和语句,且0≤i<10则对数组元素的错误引用是( )。 inta[10]={1,2,3,4,5,6,7,8,9,10},p,i; p=a;
选项:
A:
(a+i)
B: a[p-a]
C:p+i
D: *(&a[i])
答案: 【p+i

18、 问题:下面各语句行中,不能正确进行字符串赋值操作的语句是
选项:
A:char ST[5]={“ABCDE”};
B:char S[6]={“ABCDE”};
C:char *S; S=”ABCDE”;
D:char s[50]; scanf(”%s”,s);
答案: 【char ST[5]={“ABCDE”};

19、 问题:若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10} ,p=a ; 则数值为6的表达式是 。
选项:
A:
p+6
B:(p+6)
C:
p+=5
D:p+5
答案: 【*p+=5

20、 问题:若有以下定义和语句: int a[10]={1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10} ,p=a ; 则不能表示a数组元素的表达式是
选项:
A:
p
B:a[10]
C:*a
D:a[p-a]
答案: 【a[10]

第1周——初识C语言从认识变量和常量开始 第1周测验

1、 问题:下列选项中,合法的C语言标识符是
选项:
A:_a1
B:width.x
C:#abc123
D:123abc
E:o*k
F:a?
G:a+b
H:%a
I:b!
答案: 【_a1

2、 问题:以下不适合定义为用户标识符的是
选项:
A:int
B:a2
C:def2
D:3com
E:PI
F:Source
G:abc
答案: 【int

3、 问题:#include
选项:
A:编译预处理指令
B:语句
C:函数
D:什么都不是
E:有语法错误
答案: 【编译预处理指令

4、 问题:在windows下,程序编译链接后形成的可执行文件是
选项:
A:.obj文件
B:.exe文件
C:.o文件
D:.c文件
E:.h文件
答案: 【.exe文件

5、 问题:程序编译链接后显示” 0 error,0 warning” 代表
选项:
A:程序中没有语法错误
B:程序是正确的
C:程序是不正确的
D:程序中可能存在语法错误
E:程序中有语义错误
答案: 【程序中没有语法错误

6、 问题:用8位无符号二进制数能表示的最大十进制数为
选项:
A:255
B:127
C:128
D:256
答案: 【255

7、 问题:关于可执行文件说法正确的是
选项:
A:可执行文件是编译链接后生成的文件
B:可执行文件就是源代码文件
C:可执行文件后缀为.obj
D:可执行文件就是main.c文件
答案: 【可执行文件是编译链接后生成的文件

8、 问题:若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是
选项:
A:’A’+1.6的结果是浮点型
B:a的值还是整型
C:a的值是字符C
D:a的值是浮点型
E:不允许字符型和浮点型相加
答案: 【‘A’+1.6的结果是浮点型;
a的值还是整型

9、 问题:C语言用sizeof计算变量在内存中的字节数,其中sizeof是()
选项:
A:运算符
B:一元运算符
C:只需要一个操作数的运算符
D:函数
E:语句
F:标识符
G:变量
答案: 【运算符;
一元运算符;
只需要一个操作数的运算符

10、 问题:以下不属于Codeblocks中用于调试程序的工具是
选项:
A:run
B:build
C:run to cursor
D:next line
E:stop debugger
F:watches
答案: 【run;
build

11、 问题:程序的开发步骤中不包括
选项:
A:撰写文档
B:运行程序
C:编译链接
D:程序测试
E:编辑(编写代码)
答案: 【撰写文档

12、 问题:下列说法中错误的是()
选项:
A:尾数决定了实数的表数范围,阶码决定了实数的表数精度。
B:内存是按位编址的。
C:有符号和无符号整数的表数范围是相同的。
D:int型在所有的计算机上都占4个字节的存储单元。
E:编译器按变量定义的类型对不同类型的变量分配不同大小的内存空间。
F:内存是按字节编址的。
G:对于同样的尾数,阶码的值越大,则浮点数所表示的数值的绝对值就越大。
H:sizeof是编译时执行的运算符,不会导致额外的运行时间开销。
答案: 【尾数决定了实数的表数范围,阶码决定了实数的表数精度。;
内存是按位编址的。;
有符号和无符号整数的表数范围是相同的。;
int型在所有的计算机上都占4个字节的存储单元。

13、 问题:若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为
选项:
A:1
B:1.4
C:2.0
D:2
答案: 【1

14、 问题:在C语言中,字符型数据在内存中以字符的( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

15、 问题:以下符合C语言语法的实型常量是
选项:
A:5e-3
B:3.14.159e
C:1.2e0.5
D:e15
答案: 【5e-3

16、 问题:以下选项中可作为C语言合法整数的是
选项:
A:0xffa
B:10110B
C:038x
D:x2a2
答案: 【0xffa

17、 问题:下列说法正确的是
选项:
A:在C语言中,变量必须先定义后使用。
B:一条变量定义语句可定义多个同类型的变量。
C:C89规定所有变量必须在第一条可执行语句前定义。
D:const常量只能在定义时赋值。
E:实型常量的默认类型是double类型。
F:一条变量定义语句不可以同时定义多个变量。
G:不同类型的变量分配的存储空间大小都是相同的。
H:在C语言中,所有变量都必须在定义时进行初始化。
I:变量在没有初始化的时候,其值都是0
J:宏常量有数据类型,编译器在宏替换时可以进行类型检查。
答案: 【在C语言中,变量必须先定义后使用。;
一条变量定义语句可定义多个同类型的变量。;
C89规定所有变量必须在第一条可执行语句前定义。;
const常量只能在定义时赋值。;
实型常量的默认类型是double类型。

18、 问题:下列变量定义中合法的是
选项:
A:long ao=0xfdaL;
B:short _a=1-.1e-1;
C:double b=1+5e2.5;
D:float 2_and=1-e-3;
答案: 【long ao=0xfdaL;

第1周——初识C语言从认识变量和常量开始 练兵区——单选题——不计入总分

1、 问题:下列选项中,合法的C语言标识符是
选项:
A:_a1
B:width
C:#abc123
D:123abc
E:o*k
F:a?
G:a+b
H:%a
I:b!
答案: 【_a1;
width

2、 问题:以下不适合定义为用户标识符的是
选项:
A:float
B:main
C:define
D:3com
E:PI
F:Source
G:abc
答案: 【float ;
main;
define

3、 问题:#include
选项:
A:编译预处理指令
B:语句
C:函数
D:什么都不是
E:有语法错误
答案: 【编译预处理指令

4、 问题:在windows下,程序编译链接后形成的可执行文件是
选项:
A:.obj文件
B:.exe文件
C:.o文件
D:.c文件
E:.h文件
答案: 【.exe文件

5、 问题:程序编译链接后显示” 0 error,0 warning” 代表
选项:
A:程序中没有语法错误
B:程序是正确的
C:程序是不正确的
D:程序中可能存在语法错误
E:程序中有语义错误
答案: 【程序中没有语法错误

6、 问题:用8位无符号二进制数能表示的最大十进制数为
选项:
A:255
B:127
C:128
D:256
答案: 【255

7、 问题:关于可执行文件说法正确的是
选项:
A:可执行文件是编译链接后生成的文件
B:可执行文件就是源代码文件
C:可执行文件后缀为.obj
D:可执行文件就是main.c文件
答案: 【可执行文件是编译链接后生成的文件

8、 问题:若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是
选项:
A:’A’+1.6的结果是浮点型
B:a的值还是整型
C:a的值是字符C
D:a的值是浮点型
E:不允许字符型和浮点型相加
答案: 【‘A’+1.6的结果是浮点型;
a的值还是整型

9、 问题:C语言用sizeof计算变量在内存中的字节数,其中sizeof是()
选项:
A:运算符
B:一元运算符
C:只需要一个操作数的运算符
D:函数
E:语句
F:标识符
G:变量
答案: 【运算符;
一元运算符;
只需要一个操作数的运算符

10、 问题:以下不属于Codeblocks中用于调试程序的工具是
选项:
A:run
B:build
C:run to cursor
D:next line
E:stop debugger
F:watches
答案: 【run;
build

11、 问题:程序的开发步骤中不包括
选项:
A:撰写文档
B:运行程序
C:编译链接
D:程序测试
E:编辑(编写代码)
答案: 【撰写文档

12、 问题:下列说法中错误的是()
选项:
A:尾数决定了实数的表数范围,阶码决定了实数的表数精度。
B:内存是按位编址的。
C:有符号和无符号整数的表数范围是相同的。
D:int型在所有的计算机上都占4个字节的存储单元。
E:编译器按变量定义的类型对不同类型的变量分配不同大小的内存空间。
F:内存是按字节编址的。
G:对于同样的尾数,阶码的值越大,则浮点数所表示的数值的绝对值就越大。
H:sizeof是编译时执行的运算符,不会导致额外的运行时间开销。
答案: 【尾数决定了实数的表数范围,阶码决定了实数的表数精度。;
内存是按位编址的。;
有符号和无符号整数的表数范围是相同的。;
int型在所有的计算机上都占4个字节的存储单元。

13、 问题:若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为
选项:
A:1
B:1.4
C:2.0
D:2
答案: 【1

14、 问题:在C语言中,字符型数据在内存中以字符的( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

15、 问题:以下符合C语言语法的实型常量是
选项:
A:5e-3
B:3.14.159e
C:1.2e0.5
D:e15
答案: 【5e-3

16、 问题:以下选项中可作为C语言合法整数的是
选项:
A:0xffa
B:10110B
C:038x
D:x2a2
答案: 【0xffa

17、 问题:下列说法正确的是
选项:
A:在C语言中,变量必须先定义后使用。
B:一条变量定义语句可定义多个同类型的变量。
C:C89规定所有变量必须在第一条可执行语句前定义。
D:const常量只能在定义时赋值。
E:实型常量的默认类型是double类型。
F:一条变量定义语句不可以同时定义多个变量。
G:不同类型的变量分配的存储空间大小都是相同的。
H:在C语言中,所有变量都必须在定义时进行初始化。
I:变量在没有初始化的时候,其值都是0
J:宏常量有数据类型,编译器在宏替换时可以进行类型检查。
答案: 【在C语言中,变量必须先定义后使用。;
一条变量定义语句可定义多个同类型的变量。;
C89规定所有变量必须在第一条可执行语句前定义。;
const常量只能在定义时赋值。;
实型常量的默认类型是double类型。

18、 问题:下列变量定义中合法的是
选项:
A:long ao=0xfdaL;
B:short _a=1-.1e-1;
C:double b=1+5e2.5;
D:float 2_and=1-e-3;
答案: 【long ao=0xfdaL;

第2周——数字间的那些事儿,做点计算哈 第2周测验

1、 问题:下列程序的输出结果是#include
int main()
{
int a=7,b=5;
printf(“%d”,b/a);
return 0;
}
选项:
A:0
B:5
C:1
D:0.7
答案: 【0

2、 问题:下列关于单目运算符++、–的叙述中正确的是
选项:
A:a++的运算过程是:先使用变量a的值,然后再执行a=a+1。
B:++a的运算过程是:先使用变量a的值,然后再执行a=a+1。
C:a++的运算过程是:先执行a=a+1,然后再使用变量a的值。
D:a++和++a都是最终使变量a执行a=a+1,因此对于包含a++或++a的表达式而言(如j=a++;或者j=++a;),两种情况下表达式的最终运算结果一定是相同的。
答案: 【a++的运算过程是:先使用变量a的值,然后再执行a=a+1。

3、 问题:以下程序的输出结果是:#include
int main()
{
int a=1, b=2;
a=a+b;
b=a-b;
a=a-b;
printf(“%d,%d”, a, b );
return 0;
}
选项:
A:2,1
B:3,1
C:3,2
D:1,2
答案: 【2,1

4、 问题:程序运行后的输出结果是#include
int main()
{
int m=3,n=4,x;
x=m++;
++n;
x=x+8/n;
printf(“%d,%d”,x,m);
return 0;
}
选项:
A:4,4
B:4,3
C:5,4
D:5,3
答案: 【4,4

5、 问题:下面程序的运行结果是#include
int main()
{
int a = 2, b = 3 ;
float x = 3.5, y = 2.5 ;
printf(“%f”, (float)(a+b) / 2 + (int)x % (int)y) ;
return 0;
}
选项:
A:3.500000
B:3.000000
C:3.5
D:3
答案: 【3.500000

6、 问题:以下非法的赋值语句是
选项:
A:++(i+1);
B:x=(j–);
C:n=++i;
D:j++;
答案: 【++(i+1);

7、 问题:设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
选项:
A:6.000000
B: 6.500000
C:6
D:5.500000
答案: 【6.000000

8、 问题: 以下程序的运行结果是#include
int main()
{
int a = 12, b = 3;
float x = 18.5, y = 4.5;
printf(“%f”, (float)(a * b) / 2);
printf(“%d”, (int)x %(int)y);
return 0;
}
选项:
A:18.0000002
B:182
C:182.000000
D:18.0000002.000000
答案: 【18.0000002

9、 问题:设有语句“int a = 3;”,执行语句“a += a -= a * a;”后,变量a的值是
选项:
A:-12
B:3
C:0
D:9
答案: 【-12

10、 问题:在C语言中,要求操作数必须是整型的运算符是
选项:
A:%
B:/
C:*
D:+
E:-
答案: 【%

11、 问题:程序运行后的输出结果是#include
int main()
{
char a=’a’;
printf(“%c,”,++a);
printf(“%c”,a++);
return 0;
}
选项:
A: b,b
B:b,c
C:a,b
D:a,c
答案: 【 b,b

12、 问题:下面哪条语句可以生成0-9之间的随机数
选项:
A:magic=rand()%10;
B:magic=rand()%10+1;
C:magic=rand()/10;
D:magic=rand()/10+1;
答案: 【magic=rand()%10;

13、 问题:在下面的C语言语句中,存在错误的是
选项:
A:int a=b=10;
B:int a=10,b=10;
C:int a,b;a=b=10;
D:int a,b;a=10;b=10;
答案: 【int a=b=10;

14、 问题:若以下选项中的变量已正确定义,则正确的赋值语句是
选项:
A:x3=x2=x1=0;
B:x1=26.8%3;
C:1+2=x2;
D:x4=1+2=3;
答案: 【x3=x2=x1=0;

15、 问题:若有以下定义,则表达式“a * b + d – c”的值的类型为#include
int main()
{
char a;
int b;
float c;
double d;
….
return 0;
}
选项:
A:double
B:int
C:float
D:char
答案: 【double

16、 问题:在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是
选项:
A:#include
B:#include
C:#define
D:#define
答案: 【#include

17、 问题:十进制3位数整数x,下面哪条语句能正确分离出它的十位上的数字d?
选项:
A:d=(x-(x/100)100)/10;
B:d=(x%100)/10;
C:d=(x/10)%10;
D:d=x%10;
E:d=(x-x%10)/10;
F:d=x%100;
答案: 【d=(x-(x/100)
100)/10;;
d=(x%100)/10;;
d=(x/10)%10;】

18、 问题:在C语言中对下面的语句而言,哪个说法是错误的?int a, b;
选项:
A:变量a和b中的值都是0
B:变量a和b中都没有数值
C:变量a和b中的值都是未知的随机数
D:a和b都是整型变量
E:变量a和b占用的内存空间的大小是相同的
答案: 【变量a和b中的值都是0;
变量a和b中都没有数值

19、 问题:已知int a,b;并且有a=5%3;以及b=5/3;,则a和b的值分别是( )。
选项:
A:2和1
B:0和1.67
C:3和1
D:5和1
E:0和1
F:3和1.67
G:5和1.67
答案: 【2和1

20、 问题:设有以下定义,则下面给出的语句中错误的是int a=0;
float b=1.25;
char c=’A’;

define d 2

选项:
A:d++;
B:(a+b)++;
C:(-a)++;
D:(a+1)++;
E:a++;
F:b++;
G:c++;
答案: 【d++;;
(a+b)++;;
(-a)++;;
(a+1)++;

第2周——数字间的那些事儿,做点计算哈 练兵区——单选题——不计入总分

1、 问题:设有语句“int a = 3;”,执行语句“a += a -= a * a;”后,变量a的值是
选项:
A:-12
B:3
C:0
D:9
答案: 【-12

2、 问题:在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是
选项:
A:#include
B:#include
C:#define
D:#define
答案: 【#include

3、 问题:设有以下定义,则下面给出的语句中错误的是int a=0;
float b=1.25;
char c=’A’;

define d 2

选项:
A:d++;
B:(a+b)++;
C:(-a)++;
D:(a+1)++;
E:a++;
F:b++;
G:c++;
答案: 【d++;;
(a+b)++;;
(-a)++;;
(a+1)++;

4、 问题:下列关于单目运算符++、–的叙述中正确的是
选项:
A:a++的运算过程是:先使用变量a的值,然后再执行a=a+1。
B:++a的运算过程是:先使用变量a的值,然后再执行a=a+1。
C:a++的运算过程是:先执行a=a+1,然后再使用变量a的值。
D:a++和++a都是最终使变量a执行a=a+1,因此对于包含a++或++a的表达式而言(如j=a++;或者j=++a;),两种情况下表达式的最终运算结果一定是相同的。
答案: 【a++的运算过程是:先使用变量a的值,然后再执行a=a+1。

5、 问题:以下程序的输出结果是:#include
int main()
{
int a=1, b=2;
a=a+b;
b=a-b;
a=a-b;
printf(“%d,%d”, a, b );
return 0;
}
选项:
A:2,1
B:3,1
C:3,2
D:1,2
答案: 【2,1

6、 问题:下面哪条语句可以生成0-9之间的随机数
选项:
A:magic=rand()%10;
B:magic=rand()%10+1;
C:magic=rand()/10;
D:magic=rand()/10+1;
答案: 【magic=rand()%10;

7、 问题:在下面的C语言语句中,存在错误的是
选项:
A:int a=b=10;
B:int a=10,b=10;
C:int a,b;a=b=10;
D:int a,b;a=10;b=10;
答案: 【int a=b=10;

8、 问题:若有以下定义,则表达式“a * b + d – c”的值的类型为#include
int main()
{
char a;
int b;
float c;
double d;
….
return 0;
}
选项:
A:double
B:int
C:float
D:char
答案: 【double

9、 问题:十进制3位数整数x,下面哪条语句能正确分离出它的十位上的数字d?
选项:
A:d=(x-(x/100)100)/10;
B:d=(x%100)/10;
C:d=(x/10)%10;
D:d=x%10;
E:d=(x-x%10)/10;
F:d=x%100;
答案: 【d=(x-(x/100)
100)/10;;
d=(x%100)/10;;
d=(x/10)%10;】

10、 问题:在C语言中对下面的语句而言,哪个说法是错误的?int a, b;
选项:
A:变量a和b中的值都是0
B:变量a和b中都没有数值
C:变量a和b中的值都是未知的随机数
D:a和b都是整型变量
E:变量a和b占用的内存空间的大小是相同的
答案: 【变量a和b中的值都是0;
变量a和b中都没有数值

11、 问题:下列程序的输出结果是#include
int main()
{
int a=7,b=5;
printf(“%d”,b/a);
return 0;
}
选项:
A:0
B:5
C:1
D:0.7
答案: 【0

12、 问题:程序运行后的输出结果是#include
int main()
{
int m=3,n=4,x;
x=m++;
++n;
x=x+8/n;
printf(“%d,%d”,x,m);
return 0;
}
选项:
A:4,4
B:4,3
C:5,4
D:5,3
答案: 【4,4

13、 问题:下面程序的运行结果是#include
int main()
{
int a = 2, b = 3 ;
float x = 3.5, y = 2.5 ;
printf(“%f”, (float)(a+b) / 2 + (int)x % (int)y) ;
return 0;
}
选项:
A:3.500000
B:3.000000
C:3.5
D:3
答案: 【3.500000

14、 问题:以下非法的赋值语句是
选项:
A:++(i+1);
B:x=(j–);
C:n=++i;
D:j++;
答案: 【++(i+1);

15、 问题:已知int a,b;并且有a=5%3;以及b=5/3;,则a和b的值分别是
选项:
A:2和1
B:0和1.67
C:3和1
D:5和1
E:0和1
F:3和1.67
G:5和1.67
答案: 【2和1

16、 问题:设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
选项:
A:6.000000
B: 6.500000
C:6
D:5.500000
答案: 【6.000000

17、 问题:以下程序的运行结果是#include
int main()
{
int a = 12, b = 3;
float x = 18.5, y = 4.5;
printf(“%f”, (float)(a * b) / 2);
printf(“%d”, (int)x %(int)y);
return 0;
}
选项:
A:18.0000002
B:182
C:182.000000
D:18.0000002.000000
答案: 【18.0000002

18、 问题:在C语言中,要求操作数必须是整型的运算符是
选项:
A:%
B:/
C:*
D:+
E:-
答案: 【%

19、 问题:程序运行后的输出结果是#include
int main()
{
char a=’a’;
printf(“%c,”,++a);
printf(“%c”,a++);
return 0;
}
选项:
A:b,b
B:b,c
C:a,b
D:a,c
答案: 【b,b

20、 问题:若以下选项中的变量已正确定义,则正确的赋值语句是
选项:
A:x3=x2=x1=0;
B:x1=26.8%3;
C:1+2=x2;
D:x4=1+2=3;
答案: 【x3=x2=x1=0;

第3周——从键盘中来,到键盘中去,开始输入和输出啦 第3周测验

1、 问题:分析下列程序,写出程序运行结果#include
int main()
{
char c1 = ‘a’, c2 = ‘b’, c3 = ‘c’;
printf(“a%cb%cc%cabc”, c1, c2, c3);
return 0;
}
选项:
A:aabbccabc
B:acbcabc
C:aabcabc
D:acbbcabc
答案: 【aabbccabc

2、 问题:有如下语句,为使变量a的值为1,b的值为2,从键盘输入数据的正确形式是scanf(“a=%d,b=%d”,&a,&b);
选项:
A:a=1,b=2
B:1 2
C:1,2
D:a=1 b=2
答案: 【a=1,b=2

3、 问题:#include
int main()
{
int a,b,c,d;
scanf(“%c%c%d,%d”,&a,&b,&c,&d);
printf(“%c,%c,%c,%c”,a,b,c,d);
return 0;
}若运行以上程序时从键盘上输入:6565,66<回车>。则输出结果是
选项:
A:6,5,A,B
B:6,5,65,66
C:6,5,6,5
D:6,5,6,6
答案: 【6,5,A,B

4、 问题:给出程序的运行结果,程序运行时从键盘输入:54321<回车>#include
int main()
{
int a,b,s;
scanf(“%2d%2d”,&a,&b);
s=a/b;
printf(“s=%d”,s);
return 0;
}
选项:
A:1
B:1.6875
C:2
D:0
答案: 【1

5、 问题:以下程序的输出结果为#include
int main()
{
float a = 1234.567,b = 55.32;
printf(“a = %4.2f, b = %5.1f”, a,b);
return 0;
}
选项:
A:a = 1234.57, b = 55.3
B:a =1234, b =55
C:a = 1234.6, b = 5.32
D:a =1234.567, b = 55.32
答案: 【a = 1234.57, b = 55.3

6、 问题:以下程序的输出结果为#include
int main()
{
int a=2, c=5;
printf(“a = %%d, b = %%d”, a, c);
return 0;
}
选项:
A:a = %d, b = %d
B:a = %2, b = %5
C:a = 2, b = 5
D:a = %%d, b = %%d
答案: 【a = %d, b = %d

7、 问题:有以下程序,运行时若输入为B,则输出是#include
int main()
{
char ch;
ch=getchar();
ch=ch+32;
printf(“%c”,ch);
return 0;
}
选项:
A:b
B:98
C:32
D:66
答案: 【b

8、 问题:在调用printf函数输出数据时,当数据的实际位宽小于printf函数中的指定位宽时,下面叙述正确的是
选项:
A:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。
B:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补空格;如果格式字符前面有负号,那么输出的数据将会右对齐、左补空格。
C:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补0;如果格式字符前面有负号,那么输出的数据将会左对齐、右补0。
D:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补0;如果格式字符前面有负号,那么输出的数据将会右对齐、左补0。
答案: 【如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。

9、 问题:设有语句“char c=’\72′;”,则变量c
选项:
A:包含1个字符
B:包含2个字符
C:包含3个字符
D:不合法
答案: 【包含1个字符

10、 问题:在下列语句中存在错误的是
选项:
A:int a,b;scanf(“%d %f”,&a,&b);
B:int a,b;scanf(“%d %d”,a,b);
C:int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);
D:float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);
E:float a,b;scanf(“%f %f”,&a,&b);printf(“%f %f”,a,b);
F:float a,b;scanf(“%f %f”,&a,&b);printf(“a=%4.3f,b=%4.3f”,a,b);
G:int a,b;scanf(“%2d%2d”,&a,&b);printf(“a=%d,b=%d”,a,b);
H:int a,b;scanf(“%d,%d”,&a,&b);printf(“a=%2d,b=%2d”,a,b);
I:int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“a=%d,b=%d”,a,b);
答案: 【int a,b;scanf(“%d %f”,&a,&b);;
int a,b;scanf(“%d %d”,a,b);;
int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);;
float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);

11、 问题:程序运行后的输出结果是#include
int main()
{
int a=666,b=888;
printf(“%d”,a,b);
return 0;
}
选项:
A:666
B:错误信息
C:888
D:666,888
答案: 【666

12、 问题:有以下语句段#include
int main()
{
int n1=10,n2=20;
printf(“___”,n1,n2);
return 0;
}要求按以下格式输出n1和n2的值,每个输出行都是从第一列开始,则空白处代码填写正确的是运行结果示例如下:n1=10n2=20
选项:
A:n1=%dn2=%d
B:n1=%dn2=%d
C:n1=%d,n2=%d
D:n1=%d n2=%d
答案: 【n1=%dn2=%d

13、 问题:以下选项中合法的字符常量是
选项:
A: ‘\010’
B:”B”
C:68
D:D
答案: 【 ‘\010’

14、 问题:写出下面程序的输出结果#include
int main()
{
int x=6,y,z;
x*=18+1;
printf(“%d,”,x–);
x+=y=z=11;
printf(“%d”,x);
return 0;
}
选项:
A:114,124
B:113,124
C:109,116
D:110,116
答案: 【114,124

15、 问题:给出程序的运行结果,程序运行时从键盘输入:45-12<回车>#include
int main()
{
int a,b,sum;
scanf(“%d%*c%d”,&a,&b);
sum=a+b;
printf(“sum=%d”,sum);
return 0;
}
选项:
A:57
B:输出报错
C:33
D:输出一个随机数
答案: 【57

16、 问题:给出程序的运行结果#include
int main()
{
int a,b,s;
char op;
scanf(“%d %c%d”,&a,&op,&b);
s=a%b;
printf(“s=%d”,s);
return 0;
}程序运行时从键盘输入:15<回车>%5<回车>
选项:
A:0
B:程序报错
C:输出一个随机数
D:3
答案: 【0

17、 问题:给出程序的运行结果#include
int main()
{
int a,b,c,d;
char op1,op2,op3;
int sum;
printf(“please input:a+b+c+d”);
scanf(“%d%c%d%c%d%c%d”,&a,&op1,&b,&op2,&c,&op3,&d);
sum=a+b+c+d;
printf(“sum=%d”,sum);
return 0;
}程序运行时从键盘输入:1<回车>2+3+1<回车>
选项:
A:7
B:1
C:3
D:6
答案: 【7

18、 问题:在C语言中,字符型数据在内存中以( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

19、 问题:以下程序的执行结果是#include
int main()
{
int a = 5, b = 4, x, y;
x = 2 * a++;
y = –b * 2;
printf(“a=%d, x=%d”, a, x);
printf(“b=%d, y=%d”, b, y);
return 0;
}
选项:
A:a=6, x=10b=3, y=6
B:a=6, x=10b=3, y=8
C:a=6, x=12b=3, y=6
D:以上均不对
答案: 【a=6, x=10b=3, y=6

20、 问题:以下程序运行后的输出结果是#include
int main()
{
int a;
int c=10;
float f=100.0;
double x;
a=f/=c*=(x=6.5);
printf(“%d,%d,%3.1f,%3.1f”,a,c,f,x);
return 0;
}
选项:
A:1,65,1.5,6.5
B:1,65,1,6.5
C:1,65,1.0,6.5
D: 2,65,1.5,6.5
答案: 【1,65,1.5,6.5

21、 问题:给出程序的运行结果#include
int main()
{
char a,b;
int s;
printf(“please input a and b:”);
a=getchar();
b=getchar();
s=a+b;
printf(“a=%c,b=%c”,a,b);
return 0;
}程序运行时从键盘输入:1<空格>2<回车>
选项:
A:a=1,b=
B:a=1,b=2
C:a= ,b=2
D:输出乱码
答案: 【a=1,b=

22、 问题:以下程序的输出结果是#include
int main()
{
int a=1234;
printf(“%2d”,a);
return 0;
}
选项:
A:1234
B:12
C:34
D:提示出错、无结果
答案: 【1234

第3周——从键盘中来,到键盘中去,开始输入和输出啦 练兵区——单选题——不计入总分

1、 问题:以下程序的输出结果为#include
int main()
{
float a = 1234.567,b = 55.32;
printf(“a = %4.2f, b = %5.1f”, a,b);
return 0;
}
选项:
A:a = 1234.57, b = 55.3
B:a =1234, b =55
C:a = 1234.6, b = 5.32
D:a =1234.567, b = 55.32
答案: 【a = 1234.57, b = 55.3

2、 问题:以下选项中合法的字符常量是
选项:
A: ‘\010’
B:”B”
C:68
D:D
答案: 【 ‘\010’

3、 问题:给出程序的运行结果程序运行时从键盘输入:1<空格>2<回车>#include
int main()
{
char a,b;
int s;
printf(“please input a and b:”);
a=getchar();
b=getchar();
s=a+b;
printf(“a=%c,b=%c”,a,b);
return 0;
}
选项:
A:a=1,b=
B:a=1,b=2
C:a= ,b=2
D:输出乱码
答案: 【a=1,b=

4、 问题:有如下语句,为使变量a的值为1,b的值为2,从键盘输入数据的正确形式是scanf(“a=%d,b=%d”,&a,&b)
选项:
A:a=1,b=2
B:1 2
C:1,2
D:a=1 b=2
答案: 【a=1,b=2

5、 问题:#include
int main()
{
int a,b,c,d;
scanf(“%c%c%d,%d”,&a,&b,&c,&d);
printf(“%c,%c,%c,%c”,a,b,c,d);
return 0;
}若运行以上程序时从键盘上输入:6565,66<回车>。则输出结果是
选项:
A:6,5,A,B
B:6,5,65,66
C:6,5,6,5
D:6,5,6,6
答案: 【6,5,A,B

6、 问题:给出程序的运行结果,程序运行时从键盘输入:54321<回车>#include
int main()
{
int a,b,s;
scanf(“%2d%2d”,&a,&b);
s=a/b;
printf(“s=%d”,s);
return 0;
}
选项:
A:1
B:1.6875
C:2
D:0
答案: 【1

7、 问题:在调用printf函数输出数据时,当数据的实际位宽小于printf函数中的指定位宽时,下面叙述正确的是
选项:
A:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。
B:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补空格;如果格式字符前面有负号,那么输出的数据将会右对齐、左补空格。
C:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补0;如果格式字符前面有负号,那么输出的数据将会左对齐、右补0。
D:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补0;如果格式字符前面有负号,那么输出的数据将会右对齐、左补0。
答案: 【如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。

8、 问题:程序运行后的输出结果是#include
int main()
{
int a=666,b=888;
printf(“%d”,a,b);
return 0;
}
选项:
A:666
B:错误信息
C:888
D:666,888
答案: 【666

9、 问题:在C语言中,字符型数据在内存中以( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

10、 问题:以下程序运行后的输出结果是#include
int main()
{
int a;
int c=10;
float f=100.0;
double x;
a=f/=c*=(x=6.5);
printf(“%d,%d,%3.1f,%3.1f”,a,c,f,x);
return 0;
}
选项:
A:1,65,1.5,6.5
B:1,65,1,6.5
C:1,65,1.0,6.5
D: 2,65,1.5,6.5
答案: 【1,65,1.5,6.5

11、 问题:以下程序的输出结果是#include
int main()
{
int a=1234;
printf(“%2d”,a);
return 0;
}
选项:
A:1234
B:12
C:34
D:提示出错、无结果
答案: 【1234

12、 问题:设有语句“char c=’\72′;”,则变量c
选项:
A:包含1个字符
B:包含2个字符
C:包含3个字符
D:不合法
答案: 【包含1个字符

13、 问题:有以下语句段#include
int main()
{
int n1=10,n2=20;
printf(“___”,n1,n2);
return 0;
}要求按以下格式输出n1和n2的值,每个输出行都是从第一列开始,则空白处代码填写正确的是运行结果示例如下:n1=10n2=20
选项:
A:n1=%dn2=%d
B:n1=%dn2=%d
C:n1=%d,n2=%d
D:n1=%d n2=%d
答案: 【n1=%dn2=%d

14、 问题:给出程序的运行结果,程序运行时从键盘输入:45-12<回车>#include
int main()
{
int a,b,sum;
scanf(“%d%*c%d”,&a,&b);
sum=a+b;
printf(“sum=%d”,sum);
return 0;
}
选项:
A:57
B:输出报错
C:33
D:输出一个随机数
答案: 【57

15、 问题:给出程序的运行结果#include
int main()
{
int a,b,s;
char op;
scanf(“%d %c%d”,&a,&op,&b);
s=a%b;
printf(“s=%d”,s);
return 0;
}程序运行时从键盘输入:15<回车>%5<回车>
选项:
A:0
B:程序报错
C:输出一个随机数
D:3
答案: 【0

16、 问题:分析下列程序,写出程序运行结果#include
int main()
{
char c1 = ‘a’, c2 = ‘b’, c3 = ‘c’;
printf(“a%cb%cc%cabc”, c1, c2, c3);
return 0;
}
选项:
A:aabbccabc
B:acbcabc
C:aabcabc
D:acbbcabc
答案: 【aabbccabc

17、 问题:以下程序的输出结果为#include
int main()
{
int a=2, c=5;
printf(“a = %%d, b = %%d”, a, c);
return 0;
}
选项:
A:a = %d, b = %d
B:a = %2, b = %5
C:a = 2, b = 5
D:a = %%d, b = %%d
答案: 【a = %d, b = %d

18、 问题:有以下程序,运行时若输入为B,则输出是#include
int main()
{
char ch;
ch=getchar();
ch=ch+32;
printf(“%c”,ch);
return 0;
}
选项:
A:b
B:98
C:32
D:66
答案: 【b

19、 问题:在下列语句中存在错误的是
选项:
A:int a,b;scanf(“%d %f”,&a,&b);
B:int a,b;scanf(“%d %d”,a,b);
C:int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);
D:float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);
E:float a,b;scanf(“%f %f”,&a,&b);printf(“%f %f”,a,b);
F:float a,b;scanf(“%f %f”,&a,&b);printf(“a=%4.3f,b=%4.3f”,a,b);
G:int a,b;scanf(“%2d%2d”,&a,&b);printf(“a=%d,b=%d”,a,b);
H:int a,b;scanf(“%d,%d”,&a,&b);printf(“a=%2d,b=%2d”,a,b);
I:int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“a=%d,b=%d”,a,b);
答案: 【int a,b;scanf(“%d %f”,&a,&b);;
int a,b;scanf(“%d %d”,a,b);;
int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);;
float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);

20、 问题:写出下面程序的输出结果#include
int main()
{
int x=6,y,z;
x*=18+1;
printf(“%d,”,x–);
x+=y=z=11;
printf(“%d”,x);
return 0;
}
选项:
A:114,124
B:113,124
C:109,116
D:110,116
答案: 【114,124

21、 问题:给出程序的运行结果#include
int main()
{
int a,b,c,d;
char op1,op2,op3;
int sum;
printf(“please input:a+b+c+d”);
scanf(“%d%c%d%c%d%c%d”,&a,&op1,&b,&op2,&c,&op3,&d);
sum=a+b+c+d;
printf(“sum=%d”,sum);
return 0;
}程序运行时从键盘输入:1<回车>2+3+1<回车>
选项:
A:7
B:1
C:3
D:6
答案: 【7

22、 问题:以下程序的执行结果是#include
int main()
{
int a = 5, b = 4, x, y;
x = 2 * a++;
y = –b * 2;
printf(“a=%d, x=%d”, a, x);
printf(“b=%d, y=%d”, b, y);
return 0;
}
选项:
A:a=6, x=10b=3, y=6
B:a=6, x=10b=3, y=8
C:a=6, x=12b=3, y=6
D:以上均不对
答案: 【a=6, x=10b=3, y=6

第4周——无处不在的抉择 第4周测验

1、 问题:程序代码如下:#include
int main()
{
int a,b;
printf(“please input a and b:”);
scanf(“%d%d”,&a,&b);
printf(“the output data is %d”,a7<回车>则程序输出为
选项:
A:the output data is 7
B:the output data is 2
C:the output data is 1
D:the output data is 0
答案: 【the output data is 7

2、 问题:以下程序运行后的输出结果是#include
int main()
{ int a,b,c;
a=10;
b=20;
c=(a%b<1)||(a/b>1);
printf(“%d,%d,%d”,a%b,a/b,c);
return 0;
}
选项:
A:10,0,0
B:10,1,0
C:10,0,1
D:10,1,1
答案: 【10,0,0

3、 问题:从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。#include

include

int main()
{
float a, b, c;
float s, area;
printf(“Input a,b,c:”);
scanf(“%f,%f,%f”,&a,&b,&c);
if (a+b>c && b+c>a && a+c>b)
{
s = 1/2 * (a + b + c);
area = sqrt(s * (s – a) * (s – b) * (s – c));
printf(“area=%.2f”, area);
}
else
{
printf(“It is not a triangle”);
}
return 0;
}
选项:
A:第11行: s = 1/2 * (a + b + c);
B:第9行: if (a+b>c && b+c>a && a+c>b)
C:第12行: area = sqrt(s * (s – a) * (s – b) * (s – c));
D:第8行: scanf(“%f,%f,%f”,&a,&b,&c);
答案: 【第11行: s = 1/2 * (a + b + c);

4、 问题:编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2然后,计算并输出表达式的值指定的运算符为: 加(+) 减(-) 乘() 除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include
int main()
{
float data1, data2;
char op;
printf(“Please enter the expression:”);
scanf(“%f %c%f”, &data1, &op, &data2); /
%c前有一个空格 /
switch (op)
{
case ‘+’:
printf(“%f + %f = %f”, data1, data2, data1 + data2);
break;
case ‘-‘:
printf(“%f – %f = %f”, data1, data2, data1 – data2);
break;
case ‘
‘:
printf(“%f * %f = %f”, data1, data2, data1 * data2);
break;
case ‘/’:
printf(“%f/%f = %f”, data1, data2,data1/data2);
break;
default:
printf(“Invalid operator!”);
}
return 0;
}
选项:
A:第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6
B:default分支缺少break语句
C:没有错误
D:第20行语句有错误,改成:if (data2=0) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);
答案: 【第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6

5、 问题:若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
选项:
A:(x-y)<-10||!(y-x)>10
B: fabs(x-y)<10
C:x-y>-10 && x-y<10
D:(x-y)*(x-y)<100
答案: 【(x-y)<-10||!(y-x)>10

6、 问题:下列复合语句中,不能实现两数交换的是
选项:
A:{
a=b;
b=a;
}
B:{
b = a * b;
a = b / a;
b = b / a;
}
C:{
t=a;
a=b;
b=t;
}
D:{
a = a + b;
b = a – b;
a = a – b;
}
答案: 【{
a=b;
b=a;
}

7、 问题:写出下面程序的输出结果#include
int main()
{
int x=1, y=0, a=0, b=0;
switch(x)
{
case 1:
switch(y)
{
case 0: a++;
case 1: b++;
}
case 2: a++;
b++;
}
printf(“a=%d, b=%d”, a, b) ;
return 0;
}
选项:
A:a=2, b=2
B:a=2, b=1
C:a=1, b=1
D:a=1, b=0
答案: 【a=2, b=2

8、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf(“%d”,d);
return 0;
}
选项:
A:0
B:1
C:5
D:4
E:3
答案: 【0

9、 问题:执行以下程序后的输出结果为#include
int main()
{
int a=1,b=0;
switch (a)
{
case 1:
switch (b)
{
case 0: printf(“0“);break;
case 1: printf(“1“);break;
}
case 2: printf(“2“);break;
}
return 0;
}
选项:
A:0*2*
B:
0

C:0*1*2
D:有语法错误
答案: 【02

10、 问题:下面程序运行后的输出结果是#include
int main()
{
int a=3,b=4,c=5,d=2;
if(a>b)
{
if(b>c)
{
printf(“%d”,d++ +1);
}
else
{
printf(“%d”,++d +1);
}
}
printf(“%d”,d);
return 0;
}
选项:
A:2
B:3
C:43
D:44
答案: 【2

11、 问题:下面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整。#include
int main()
{
int m;
printf(“Input m: “);
scanf(“%d”, &m); //输入一个整数
if (m > 0) //是否为正数
{
if (m % 2 == 0) //是正数,且能被2整除,则是正偶数
{
printf(“%d is a positive even”, m);
}
else //不能被2整除,则是正奇数
{
printf(“%d is a positive odd”, m);
}
}

___ //判断是否为负数

{
    _______________

    {
         printf("%d is a negative even", m);   //是负偶数
    }
    else
    {
         printf("%d is a negative odd", m);    //是负奇数
    }
}
else
{
    printf("%d is zero.It is an even", m);    
}

return 0;
}
选项:
A:第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)
B:第19行代码: if(m < 0)第22行代码: if (m % 2 == 0)
C:第19行代码: else if(m < 0)第22行代码: if (m % 2 != 0)
D:第19行代码: if(m < 0)第22行代码: if (m % 2 != 0)
答案: 【第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)

12、 问题:程序功能:从键盘输入一个字符,判别它是否为大写字母。如果是,将它转换成小写字母,如果不是,不转换。在屏幕上输出最后得到的字符。程序代码如下,为实现上述功能,请将第8行标号处缺少的语句填写完整。#include
int main()
{
char c;
printf(“Please input a character:”);
scanf(“%c”,&c);
if(c >=’A’&&c <= ‘Z’)
c =___;
printf(“%c”,c);
return 0;
}
选项:
A:c+32
B:c+48
C:C+65
D:C+97
答案: 【c+32

13、 问题:执行下列程序,k输入为1时的输出结果是#include
int main()
{
int k;
scanf(“%d”,&k);
switch(k)
{
case 1: printf(“%d”,k++);
case 2: printf(“%d”,k++);
case 3: printf(“%d”,k++);
break;
default: printf(“Full!”);
}
return 0;
}
选项:
A:123
B:1
C:2
D:3
答案: 【123

14、 问题:编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。 程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。 #include

include

int main()
{
int x;
double y;
printf(“Input x: “);
scanf(“%d”, &x); // 输入一个整数
if (x > 0)
{
y = exp(-x); //如果大于0,计算y=exp(-x)的值
}
_______
{
y = 1; //x=0,则y=1
}
else
{
y = -exp(x); //x<0,则y=-exp(x)
}
printf(“y=%f”, y);
return 0;
}
选项:
A:else if (x == 0)
B:else if (x = 0)
C:if (x == 0)
D:if (x = 0)
答案: 【else if (x == 0)

15、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a1,0】

16、 问题:以下程序的功能是计算一元二次方程的根。代码如下,请将第10行标号处缺少的语句填写完整。 #include

include

include

define EPS 1e-6

int main()
{
float a, b, c, disc, p, q;
printf(“Please enter the coefficients a,b,c:”);
scanf(“%f,%f,%f”, &a, &b, &c);
_________ / a=0时,输出”不是二次方程” /

 {
           printf("It is not a quadratic equation!");
           exit(0);  /* C标准库函数,用于终止整个程序的执行,强制返回操作系统 */
 }
  disc = b * b - 4 * a * c; /* 计算判别式 */
  p = - b / (2 * a);
  q = sqrt(fabs(disc)) / (2 * a);
  if (fabs(disc) <= EPS)    /* 判别式等于0时,输出两相等实根 */
  {
               printf("x1 = x2 = %.2f", p);
  }
 else                      
 { 
             if (disc > EPS)        /* 判别式大于0时,输出两不等实根 */
             {
                        printf("x1 = %.2f, x2 = %.2f", p+q, p-q);
             }
             else                     /* 判别式小于0时,输出两共轭复根 */
             {
                        printf("x1 = %.2f+%.2fi, ", p, q);
                        printf("x2 = %.2f-%.2fi", p, q);
             }
  }
 return 0;

}
选项:
A:if (fabs(a) <= EPS)
B:if (a <= EPS)
C:if (a=0)
D:if (a<= EPS || a>=-EPS)
答案: 【if (fabs(a) <= EPS)

17、 问题:下列说法错误的是()。
选项:
A:case后的“常量表达式”的类型只能是整型。
B:若case后面的语句省略不写,则表示它什么也不做。
C:switch语句中的break和default可有可无。
D:每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。
E:程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值匹配的case常量,找到后则按顺序执行此case后的所有语句,而不再进行判断,直到遇break语句或右花括号}为止。
F:若所有的case常量都不能与表达式的值相匹配,那么就执行default后面的语句。通常用于处理不在合理区间内的非法数据。
G:每个case后的常量只起语句标号的作用,所以case常量的值必须互不相同,而且在每个case的语句序列后都有break的情况下,改变case常量出现的次序,不影响程序的运行结果。
H:case后面的表达式不能是含有变量的关系表达式和逻辑表达式,它不能像if语句那样起到判断表达式真假的作用。
答案: 【case后的“常量表达式”的类型只能是整型。;
若case后面的语句省略不写,则表示它什么也不做。;
switch语句中的break和default可有可无。

第4周——无处不在的抉择 练兵区——单选题——不计入总分

1、 问题:下面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整。#include
int main()
{
int m;
printf(“Input m: “);
scanf(“%d”, &m); //输入一个整数
if (m > 0) //是否为正数
{
if (m % 2 == 0) //是正数,且能被2整除,则是正偶数
{
printf(“%d is a positive even”, m);
}
else //不能被2整除,则是正奇数
{
printf(“%d is a positive odd”, m);
}
}

_______________          //判断是否为负数

{
    _______________

    {
         printf("%d is a negative even", m);   //是负偶数
    }
    else
    {
         printf("%d is a negative odd", m);    //是负奇数
    }
}
else
{
    printf("%d is zero.It is an even", m);    
}

return 0;
}
选项:
A:第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)
B:第19行代码: if(m < 0)第22行代码: if (m % 2 == 0)
C:第19行代码: else if(m < 0)第22行代码: if (m % 2 != 0)
D:第19行代码: if(m < 0)第22行代码: if (m % 2 != 0)
答案: 【第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)

2、 问题:执行以下程序后的输出结果为#include
int main()
{
int a=1,b=0;
switch (a)
{
case 1:
switch (b)
{
case 0: printf(“0“);break;
case 1: printf(“1“);break;
}
case 2: printf(“2“);break;
}
return 0;
}
选项:
A:0*2*
B:
0

C:0*1*2
D:有语法错误
答案: 【02

3、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a1,0】

4、 问题:以下程序运行后的输出结果是#include
int main()
{
int a,b,c;
a=10;
b=20;
c=(a%b<1)||(a/b>1);
printf(“%d,%d,%d”,a%b,a/b,c);
return 0;
}
选项:
A:10,0,0
B:10,1,0
C:10,0,1
D:10,1,1
答案: 【10,0,0

5、 问题:编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2然后,计算并输出表达式的值指定的运算符为: 加(+) 减(-) 乘() 除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include
int main()
{
float data1, data2;
char op;
printf(“Please enter the expression:”);
scanf(“%f %c%f”, &data1, &op, &data2); /
%c前有一个空格 /
switch (op)
{
case ‘+’:
printf(“%f + %f = %f”, data1, data2, data1 + data2);
break;
case ‘-‘:
printf(“%f – %f = %f”, data1, data2, data1 – data2);
break;
case ‘
‘:
printf(“%f * %f = %f”, data1, data2, data1 * data2);
break;
case ‘/’:
printf(“%f/%f = %f”, data1, data2,data1/data2);
break;
default:
printf(“Invalid operator!”);
}
return 0;
}
选项:
A:第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6
B:default分支缺少break语句
C:没有错误
D:第20行语句有错误,改成:if (data2=0) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);
答案: 【第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6

6、 问题:下列复合语句中,不能实现两数交换的是
选项:
A:{
a=b;
b=a;
}
B:{
b = a * b;
a = b / a;
b = b / a;
}
C:{
t=a;
a=b;
b=t;
}
D:{
a = a + b;
b = a – b;
a = a – b;
}
答案: 【{
a=b;
b=a;
}

7、 问题:写出下面程序的输出结果#include
int main()
{
int x=1, y=0, a=0, b=0;
switch(x)
{
case 1:
switch(y)
{
case 0: a++;
case 1: b++;
}
case 2: a++;
b++;
}
printf(“a=%d, b=%d”, a, b) ;
return 0;
}
选项:
A:a=2, b=2
B:a=2, b=1
C:a=1, b=1
D:a=1, b=0
答案: 【a=2, b=2

8、 问题:执行下列程序,k输入为1时的输出结果是#include
int main()
{
int k;
scanf(“%d”,&k);
switch(k)
{
case 1: printf(“%d”,k++);
case 2: printf(“%d”,k++);
case 3: printf(“%d”,k++);
break;
default: printf(“Full!”);
}
return 0;
}
选项:
A:123
B:1
C:2
D:3
答案: 【123

9、 问题:编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。#include

include

int main()
{
int x;
double y;
printf(“Input x: “);
scanf(“%d”, &x); // 输入一个整数
if (x > 0)
{
y = exp(-x); //如果大于0,计算y=exp(-x)的值
}
_______
{
y = 1; //x=0,则y=1
}
else
{
y = -exp(x); //x<0,则y=-exp(x)
}
printf(“y=%f”, y);
return 0;
}
选项:
A:else if (x == 0)
B:else if (x = 0)
C:if (x == 0)
D:if (x = 0)
答案: 【else if (x == 0)

10、 问题:以下程序的功能是计算一元二次方程的根。代码如下,请将第10行标号处缺少的语句填写完整。#include

include

include

define EPS 1e-6

int main()
{
float a, b, c, disc, p, q;
printf(“Please enter the coefficients a,b,c:”);
scanf(“%f,%f,%f”, &a, &b, &c);
_________ / a=0时,输出”不是二次方程” /

 {
           printf("It is not a quadratic equation!");
           exit(0);  /* C标准库函数,用于终止整个程序的执行,强制返回操作系统 */
 }
  disc = b * b - 4 * a * c; /* 计算判别式 */
  p = - b / (2 * a);
  q = sqrt(fabs(disc)) / (2 * a);
  if (fabs(disc) <= EPS)    /* 判别式等于0时,输出两相等实根 */
  {
               printf("x1 = x2 = %.2f", p);
  }
 else                      
 { 
             if (disc > EPS)        /* 判别式大于0时,输出两不等实根 */
             {
                        printf("x1 = %.2f, x2 = %.2f", p+q, p-q);
             }
             else                     /* 判别式小于0时,输出两共轭复根 */
             {
                        printf("x1 = %.2f+%.2fi, ", p, q);
                        printf("x2 = %.2f-%.2fi", p, q);
             }
  }
 return 0;

}
选项:
A:if (fabs(a) <= EPS)
B:if (a <= EPS)
C:if (a=0)
D:if (a<= EPS || a>=-EPS)
答案: 【if (fabs(a) <= EPS)

11、 问题:从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。#include

include

int main()
{
float a, b, c;
float s, area;
printf(“Input a,b,c:”);
scanf(“%f,%f,%f”,&a,&b,&c);
if (a+b>c && b+c>a && a+c>b)
{
s = 1/2 * (a + b + c);
area = sqrt(s * (s – a) * (s – b) * (s – c));
printf(“area=%.2f”, area);
}
else
{
printf(“It is not a triangle”);
}
return 0;
}
选项:
A:第11行: s = 1/2 * (a + b + c);
B:第9行: if (a+b>c && b+c>a && a+c>b)
C:第12行: area = sqrt(s * (s – a) * (s – b) * (s – c));
D:第8行: scanf(“%f,%f,%f”,&a,&b,&c);
答案: 【第11行: s = 1/2 * (a + b + c);

12、 问题:若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
选项:
A:(x-y)<-10||!(y-x)>10
B: fabs(x-y)<10
C:x-y>-10 && x-y<10
D:(x-y)*(x-y)<100
答案: 【(x-y)<-10||!(y-x)>10

13、 问题:程序功能:从键盘输入一个字符,判别它是否为大写字母。如果是,将它转换成小写字母,如果不是,不转换。在屏幕上输出最后得到的字符。程序代码如下,为实现上述功能,请将第8行标号处缺少的语句填写完整。#include
int main()
{
char c;
printf(“Please input a character:”);
scanf(“%c”,&c);
if(c >=’A’&&c <= ‘Z’)
c =___;
printf(“%c”,c);
return 0;
}
选项:
A:c+32
B:c+48
C:c+65
D:c+97
答案: 【c+32

14、 问题:程序代码如下:#include
int main()
{
int a,b;
printf(“please input a and b:”);
scanf(“%d%d”,&a,&b);
printf(“the output data is %d”,a7<回车>则程序输出为
选项:
A:the output data is 7
B:the output data is 2
C:the output data is 1
D:the output data is 0
答案: 【the output data is 7

15、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf(“%d”,d);
return 0;
}
选项:
A:0
B:1
C:5
D:4
E:3
答案: 【0

16、 问题:下面程序运行后的输出结果是#include
int main()
{
int a=3,b=4,c=5,d=2;
if(a>b)
{
if(b>c)
{
printf(“%d”,d++ +1);
}
else
{
printf(“%d”,++d +1);
}
}
printf(“%d”,d);
return 0;
}
选项:
A:2
B:3
C:43
D:44
答案: 【2

17、 问题:下列说法错误的是()。
选项:
A:case后的“常量表达式”的类型只能是整型。
B:若case后面的语句省略不写,则表示它什么也不做。
C:switch语句中的break和default可有可无。
D:每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。
E:程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值匹配的case常量,找到后则按顺序执行此case后的所有语句,而不再进行判断,直到遇break语句或右花括号}为止。
F:若所有的case常量都不能与表达式的值相匹配,那么就执行default后面的语句。通常用于处理不在合理区间内的非法数据。
G:每个case后的常量只起语句标号的作用,所以case常量的值必须互不相同,而且在每个case的语句序列后都有break的情况下,改变case常量出现的次序,不影响程序的运行结果。
H:case后面的表达式不能是含有变量的关系表达式和逻辑表达式,它不能像if语句那样起到判断表达式真假的作用。
答案: 【case后的“常量表达式”的类型只能是整型。;
若case后面的语句省略不写,则表示它什么也不做。;
switch语句中的break和default可有可无。

第5周——周而复始的循环之道 第5周测验

1、 问题:程序运行后的输出结果是#include
int main()
{
int i;

    for(i=0;i<3;i++)

        switch(i)

            {

                case 0: printf("%d",i);

                case 2: printf("%d",i);

                default: printf("%d",i);

            }

    return 0;

}
选项:
A:000122
B:022111
C:021021
D:012
答案: 【000122

2、 问题:若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
选项:
A:for( i=1; i<=5; i++ )
{
p=1;
p=i;
}
B:for(i=1,p=1;i<=5;i++) p
=i;
C:i=1;
p=1;
while ( i<=5 )
{
p=i;
i++;
}
D:i=1;
p=1;
do {
p
=i;
i++;
} while ( i<=5 );
答案: 【for( i=1; i<=5; i++ )
{
p=1;
p*=i;
}

3、 问题:以下程序执行后的输出结果是#include
int main( )
{
int x=0,y=5,z=3;
while(z–>0 && ++x<5)
{
y=y-1;
}
printf(“%d,%d,%d”,x,y,z);
return 0;
}
选项:
A:3,2,-1
B:3,2,0
C:4,3,-1
D:5,-2,-5
答案: 【3,2,-1

4、 问题:下面程序的输出是#include
int main()
{
int y=9;
for( ; y>0; y–)
{
if(y%3==0)
{
printf(“%d”, –y);
continue;
}
}
return 0;
}
选项:
A:852
B:741
C:963
D:875421
答案: 【852

5、 问题:爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int x = 1, find = 0;
while (_)
{
if (
_______)
{
printf(“x = %d”, x);
find = 1;
}
x++;
}

return 0;

}
选项:
A:第5行: !find第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
B:第5行: find==1第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
C:第5行: find!=1第7行: x/2==1 && x/3==2 && x/5==4 && x/6==5 && x/7==0
D:第5行: find!=0第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
答案: 【第5行: !find第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0

6、 问题:鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int x, y;
for (x=1; _; x++)
{
__;
if (
____)
{
printf(“x = %d, y = %d”, x, y);
}
}

return 0;

}
选项:
A:第5行: x<=97第7行: y = 98 – x第8行: 2x+4y == 386
B:第5行: x<97第7行: x = 98 – y第8行: 2x+4y == 386
C:第5行: x<97第7行: y = 98 – x第8行: 2x+4y == 386
D:第5行: x<=97第7行: x = 98 – y第8行: 2x+4y <= 386
答案: 【第5行: x<=97第7行: y = 98 – x第8行: 2x+4y == 386

7、 问题:以下能正确计算1×2×3×4…×10的程序段是
选项:
A:i=1;
s=1;
do {
s=si;
i++;
} while(i<=10);
B:do
{
i=1;
s=1;
s=s
i;
i++;
} while(i<=10);
C:do
{
i=1;
s=0;
s=si;
i++;
} while(i<=10);
D:i=1;
s=0;
do {
s=s
i;
i++;
} while(i<=10);
答案: 【i=1;
s=1;
do {
s=s*i;
i++;
} while(i<=10);

8、 问题:以下程序执行后的输出结果是#include
int main( )
{
int i,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3) continue;
n++;
}while(!i);
n++;
}
printf(“n=%d”,n);
return 0;
}
选项:
A:n=4
B: n=5
C: n=2
D: n=3
答案: 【n=4

9、 问题:以下正确的描述是
选项:
A:只能在循环体内和switch语句体内使用break语句
B: continue语句的作用是结束整个循环的执行
C:在循环体内使用break语句或continue语句的作用相同
D:continue语句可以写在循环体之外
答案: 【只能在循环体内和switch语句体内使用break语句

10、 问题:计算直到最后一项的绝对值小于为止。‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include

include

int main()
{
int n = 1;
float term = 1, sum = 0;
__;

while (fabs(term) >= 1e-4)      //判末项大小
{
    term = sign / n;            //求出累加项
    sum = sum + term;           //累加
    ________________;               //改变项的符号
    n++;                            //分母加1
}
printf("sum = %f", sum);
       return 0;

}
选项:
A:第7行代码: float sign=1第13行代码: sign = -sign
B:第7行代码: float sign= -1第13行代码: sign = -sign
C:第7行代码: float sign=1第13行代码: term = -term
D:第7行代码: float sign= -1第13行代码: term = -term
答案: 【第7行代码: float sign=1第13行代码: sign = -sign

11、 问题:设已定义i和k为int类型变量,则以下for循环语句for(i=0,k=-1;k=1; i++,k++)
printf( “ * *”);
选项:
A:是无限循环
B:判断循环结束的条件不合法
C:循环一次也不执行
D:循环只执行一次
答案: 【是无限循环

12、 问题:有以下程序,若从键盘给n输入的值是-3,则程序的输出结果是#include
int main()
{
int s=0,a=1,n;
scanf(“%d”,&n);
do
{
s+=1;
a=a-2;
} while(a!=n);
printf(“%d”,s);
return 0;
}
选项:
A:2
B:-1
C:3
D:0
答案: 【2

13、 问题:以下程序运行后的输出结果是#include
int main()
{
int i=0,s=0;
for (;;)
{
if(i==3||i==5) continue;
if (i==6) break;
i++;
s+=i;
}
printf(“%d”,s);
return 0;
}
选项:
A:程序进入死循环
B:10
C:13
D:21
答案: 【程序进入死循环

14、 问题:下面程序的功能是输出以下形式的图案,则在下划线处应填入的是 * *#include
int main( )
{ int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=____;j++)
{
printf(“
“);
}
printf(“”);
}
return 0;
}
选项:
A:2
i-1
B:2i+1
C:i+2
D:i
答案: 【2
i-1】

15、 问题:程序执行后的输出结果是#include
int main( )
{
int i,s=0;
for(i=1;i<10;i+=2)
{
s+=i+1;
}
printf(“%d”,s);
return 0;
}
选项:
A:自然数1~10中的偶数之和
B:自然数1~9的累加和
C:自然数1~10的累加和
D:自然数1~9中的奇数之和
答案: 【自然数1~10中的偶数之和

16、 问题:以下程序的输出结果是#include
int main()
{
int a, b;
for(a=1, b=1; a<=100; a++)
{
if(b>=10) break;
if (b%3==1)
{
b+=3;
continue;
}
}
printf(“%d”,a);
return 0;
}
选项:
A:4
B:101
C:6
D:5
答案: 【4

17、 问题:三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int i, j, k;
for (i=0; i<=3; i++)
{
for (j=0; j<=3; j++)
{
for (____)
{
if (______)
{
printf(“i=%d, j=%d, k=%d”, i, j, k);
}
}
}
}

return 0;

}
选项:
A:第9行: k=0; k<=6; k++第11行: i + j + k == 8
B:第9行: k=0; k<=6; k++第11行: i + j + k = 8
C:第9行: k=0; k<=6; k++第11行: i + j + k <= 8
D:第9行: k=0; k<6; k++第11行: i + j + k == 8
答案: 【第9行: k=0; k<=6; k++第11行: i + j + k == 8

18、 问题:我国古代的《张丘建算经》中有这样一道著名的百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int x, y, z;
for (x=0; x<=20; x++)
{
for (y=0; ___; y++)
{
__;
if (__
)
{
printf(“x=%d, y=%d, z=%d”, x, y, z);
}
}
}

return 0;

}
选项:
A:第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100
B:第7行: y<=33第9行: z + y + x = 100第10行: 5x + 3y + z/3.0 = 100
C:第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100
D:第7行: y<33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 <= 100
答案: 【第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100

19、 问题:以下不是死循环的程序段是
选项:
A:int s=36;
while (s)
{
–s;
}
B:int i=100;
while(1)
{
i=i%100+1;
if (i>100) break;
}
C:for( ; ;);
D:unsigned int k=0;
do{
++k;
} while (k>=0);
答案: 【int s=36;
while (s)
{
–s;
}

20、 问题:以下程序的功能是计算:s= 1+1/2+1/3+……+1/10,程序运行后输出结果错误,导致错误结果的程序行是#include
int main()
{
int n;
float s;
s=1.0;
for(n=10;n>1;n–)
{
s=s+1/n;
}
printf(“%6.4f”,s);
return 0;
}
选项:
A:s=s+1/n;
B: printf(“%6.4f”,s);
C:for(n=10;n>1;n–)
D:s=1.0;
答案: 【s=s+1/n;

21、 问题:以下程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是#include
int main( )
{
char k;
int i;
for(i=1;i<3;i++)
{
scanf(“%c”,&k);
switch(k)
{
case ‘0’: printf(“another”);
case ‘1’: printf(“number”);
}
}
return 0;
}
选项:
A:anothernumbernumber
B:numbernumber
C:anothernumber
D:anothernumberanother
答案: 【anothernumbernumber

本门课程剩余章节答案为付费内容
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦
   

本答案对应课程为:点我自动跳转查看
本课程起止时间为:2019-10-07到2020-01-10
本篇答案更新状态:已完结

   

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注