1.1 随堂测验
1、【单选题】“程序存储思想”是__________提出来的。
A、Dennis M. Ritchie
B、Bell
C、Von Neumann
D、Ken Thompsom
2、【单选题】如果计算机有32根地址总线,则其存储器的最大容量可达____________。
A、4GB
B、32M
C、16GB
D、32GB
3、【判断题】存储器的容量可以通过插入内存条进行无限扩充。
A、正确
B、错误
1.3 随堂测验
1、【单选题】以下哪一种是从源程序到目标程序的翻译方式_________。
A、编辑
B、编译
C、链接
D、运行
2、【判断题】C语言和JAVA语言都是面向对象的程序设计语言。
A、正确
B、错误
1.4 随堂测验
1、【单选题】十进制数346所对应的八进制数为
A、235
B、532
C、237
D、732
2、【判断题】在进制转换中,一位八进制数相当于三位二进制数,一位十六进制数相当于四位二进制数。
A、正确
B、错误
第一章单元测验
1、【单选题】以下哪个是冯诺伊曼的思想____________。
A、计算机应采用二进制
B、程序存储的思想
C、计算机由硬件和软件组成
D、软件分为系统软件和应用软件
2、【单选题】关于软件,下列说法不正确的是_____________。
A、软件的核心是程序
B、软件就是程序
C、软件是程序和文档的总和
D、软件不能缺少文档
3、【单选题】以下关于源程序与目标程序的说法,不正确的是____________。
A、用机器语言编写的源程序就是目标程序
B、汇编语言写的源程序需要汇编为目标程序
C、C语言源程序需要编译为目标程序
D、所有高级语言的编译器均一样
4、【单选题】第一个结构化程序设计语言是_________________。
A、PASCAL
B、C
C、BASIC
D、FORTRAN
5、【单选题】贝尔实验室的Dennis M. Ritchie于1973年用C语言重写了__________操作系统。
A、DOS
B、UNIX
C、WINDOWS
D、LINUX
6、【单选题】如果计算机有32根地址总线,其存储器的最大存储容量为_______________。
A、64MB
B、32GB
C、4GB
D、8GB
7、【单选题】二进制数10101010101所对应的八进制数为________________。
A、2525
B、5252
C、555
D、222
8、【单选题】二进制数10101010101所对应的十六进制数为__________________。
A、222
B、555
C、2525
D、5252
9、【单选题】可运行的C语言程序的扩展名为___________________。
A、obj
B、cpp
C、exe
D、c
10、【单选题】C程序编译之后生成的文件名的扩展名是_________________。
A、.exe
B、.obj
C、.c
D、.bin
11、【填空题】C语言源程序开发的第一步为_____________。
A、
12、【填空题】观察本章的“Hello world”C程序,打印“Hello world”用的函数为_____________。
A、
13、【填空题】十进制数348所对应的八进制数为______________。
A、
14、【填空题】C程序的完整开发过程包括:编辑、_________、链接和运行。
A、
15、【填空题】观察本章的“Hello wolrd”C源程序,每条语句以_______结束。
A、
2.1 随堂测验
1、【单选题】_____可以作为正确的变量名。
A、R&D
B、_filename
C、for
D、$X;
2、【填空题】C程序的执行从_________开始。
A、
3、【填空题】一个C程序有______个主函数。
A、
2.2 随堂测验
1、【判断题】sizeof是一个函数名。
A、正确
B、错误
2、【判断题】在C语言中,对于任何一种数据类型,都要严格规定该类数据的存储结构、取值范围和能对其进行的操作。
A、正确
B、错误
3、【判断题】单精度和双精度都是实型,所以是一样的。
A、正确
B、错误
4、【填空题】在C语言中,用关键字__ __定义单精度实型变量。
A、
2.3 随堂测验
1、【单选题】下列_____数值最大?
A、012
B、0x12
C、12
D、120
2、【单选题】下列______是合法的实型常量?
A、234E3.1
B、E3
C、234.
D、234
3、【单选题】______不同于其他三个字符?
A、‘a’
B、‘A’
C、‘\x41'
D、'\101'
4、【单选题】________是C语言中合法的字符串常量?
A、How are you?
B、"How are you ?"
C、'How are you?'
D、$How are you?$
2.4 随堂测验
1、【单选题】有变量定义如下:double num; 要使得num的值为3.14159,则正确的输入语句为:________。
A、scanf("%lf",num);
B、scanf("%lf",&num);
C、scanf("%d",&num);
D、scanf("%f",&num);
2、【单选题】阅读以下程序#includeint main(){ int case; float printF; printf(“请输入2个数:”); scanf(“%d %f”,case,printF); printf(“%d %f\n”,case,printF);return 0;}该程序编译时产生错误,其出错原因是________。
A、定义语句出错,case不能用作用户自定义标识符
B、定义语句出错,printF不能用作用户自定义标识符
C、定义语句无错,scanf不能作为输入函数使用
D、定义语句无错,printf不能输出case的值
3、【判断题】#includestdio.h int main( ) { scanf(%3d%f,x,y); printf(“%d,%f\n”,x,y); return 0; } 该段代码编译没有错误,可正常运行。
A、正确
B、错误
4、【填空题】请写出下面程序的输出结果。#includestdio.hint main(){ char ch='A'+10; printf(C=%c,C=%d,c=%c,c=%d\n,ch,ch,ch+32,ch+32); return 0;}
A、
2.5 随堂测验
1、【单选题】C语言short型数据占2个字节,则unsigned short型数据的取值范围是______。
A、0 ~255
B、0~65535
C、-256~255
D、-32768~32767
2、【填空题】请写出下面程序的输出结果。 #includestdio.hint main( ) { short int a=32767,b;b=a+1;printf(a=%d,b=%d\n,a,b);return 0;}
A、
第二章单元测验
1、【单选题】下列不正确的转义字符是______。
A、'\v'
B、'\"'
C、'\68'
D、'\0'
E、'\t'
F、'\x4f '
2、【单选题】下列不正确的常量表示是_______。
A、0x33FF
B、1.2e0.5
C、2L
D、'\72'
E、'HelloWorld!'
F、 "我爱中国"
3、【单选题】若函数中有定义语句:int k;,则下列说法正确的是_______。
A、系统将自动给k赋初值0
B、这时k中有值但是无意义
C、系统将自动给k赋初值-1
D、这时k中无任何值
4、【单选题】关于C语言中数的表示,以下叙述正确的是________。
A、只有整型数在允许范围内能精确无误地表示,实型数会有误差
B、只要在允许范围内整型和实型都能精确表示
C、只有实型数在允许范围内能精确无误地表示,整型数会有误差
D、只有八进制表示的数才不会有误差
5、【单选题】C语言中,\x5d在内存中占用的字节数是_______。
A、2
B、3
C、4
D、1
E、5
6、【单选题】C语言中,一个字符型变量在内存中占用的字节数是_______。
A、1
B、3
C、4
D、2
7、【单选题】以下正确的 C 语言变量名是_______。
A、for
B、excise_1
C、a+b
D、5test
8、【单选题】下列选项中,正确的整型常量是________.
A、018
B、0xfa
C、12,345
D、01a
E、0171
F、33ff
9、【单选题】下列选择中为C语言中非法常量的是_______.
A、'as'
B、'\\'
C、01177
D、.2e5
E、'\x61'
F、1E-2
10、【单选题】下列哪个选项属于C语言中的合法字符串常量 。
A、$abc$
B、how are you
C、"china"
D、'hello'
E、/*上课了*/
11、【单选题】#include stdio.hint main(){ double i=3.1415926; printf(%.4f,%4.3f,%6.2f, i, i, i); return 0; }
A、输出错误
B、3.14,.142,3.14
C、3.1416,3.142, 3.14
D、0.1415,3.141, 3.14
E、3.14,3.141,3.1416
12、【单选题】有以下程序段 char ch; ch='a'; printf(%c,%d,ch, ch); 已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是
A、因变量类型与格式描述符的类型不匹配输出无定值
B、输出项与格式描述符个数不符,输出为零值或不定值
C、a,97
D、'a',a
E、'a',97
F、97,a
13、【单选题】若有以下定义和语句,char c1 = ‘b’, c2 = ‘e’; printf(%d, %c\n, c2-c1, c2-‘a’+’A’); 则输出结果是___
A、3,E
B、类型不匹配,编译报错
C、无法计算,输出乱码
D、3,e
E、4,E
F、b,E
14、【填空题】语句printf(“You are \rA\x20niceE\bboy!”); 的输出结果是______。
A、
15、【填空题】有scanf输入一个double型变量时,需要使用格式转换说明符为% 。
A、
16、【填空题】程序中定义的一个字符型变量在内存中占用___ 个字节。
A、
17、【填空题】C语言程序中需要进行输入/输出处理时,必须包含的头文件是 。
A、
18、【填空题】C语言源程序名的后缀是_____。
A、
19、【填空题】需要从键盘给一个字符型变量ch输入一个字符,使用的输入语句是:ch= (); 。
A、
20、【填空题】使用标准输出函数输出一个double型的变量x,要求输出数值占6列,即6个数字位,并保留2位小数位,则输出语句为printf(%_____f,x);。如:x=123.4567,要求输出在屏幕上为123.46;x=3.45678,则输出为□□3.46;□表示空格。
A、
3.1 随堂测验
1、【判断题】单目运算符的优先级高于双目算术运算符。
A、正确
B、错误
2、【判断题】数值368不是一个合法的C语言表达式。
A、正确
B、错误
3.2 随堂测验
1、【单选题】下列运算符号的结合性是从右往左的是______。
A、==
B、()
C、?:
D、 &&
2、【判断题】运算符“()”的优先级高于运算符“++”
A、正确
B、错误
3.3 随堂测验
1、【单选题】以下运算符中优先级最低的是_______。
A、赋值运算符
B、 关系运算符
C、逻辑运算符
D、逗号运算符
2、【单选题】设m,n,a,b,c,d均为0,执行(m=a= =b)||(n=c= =d)后,m、n的值是 。
A、0,0
B、0,1
C、1,0
D、1,1
3、【单选题】设float m=4.0,n=4.0;使m为10.0的表达式是____。
A、m -= n*2.5
B、 m/=n+9
C、m*=n-6
D、m+=n+2
4、【填空题】设有语句:int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4的值是_______。
A、
5、【填空题】定义 int x,y; 执行 y=(x=1,++x,x+2); 语句后,y =________。
A、
3.4 随堂测验
1、【单选题】以下结果为整数的表达式(设有 int i;char c;float f; )____。
A、i+f
B、i*c
C、c+f
D、i+c+f
2、【填空题】a+b%3*(int)(a-b)/4 (设double a=13.6; int b=8)结果为:
A、
3.5 随堂测验
1、【单选题】设a=2,b=3;则表达式a^b2的值是____.
A、00000011
B、00000110
C、00000100
D、00000010
2、【单选题】变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是_______ 。
A、a^b
B、 a|b
C、 a&b
D、 a<<4
第三章编程
第三章单元测验
1、【单选题】sizeof 是一个_____。
A、运算符
B、常量
C、变量
D、函数
2、【单选题】有以下变量定义:int k=9,x=14;,则执行语句k=(x%=k)-(k%=4)后,k的值为_____。
A、3
B、5
C、1
D、4
3、【单选题】判断char型变量c1是否为大写字母的正确表达式是_____。
A、'A'<=c1<='Z'
B、(c1>='A')&(c1<='Z')
C、(c1>='A')&&(c1<='Z')
D、('A'<=c1) AND ('Z'>=c1)
E、('A'<=c1)&&('Z'>=c1)
4、【单选题】设double m=4.0,n=4.0;使m为10.0的表达式是____。
A、m-=n*2.5
B、m/=n+9
C、m*=n-6
D、m+=n+2
5、【单选题】设变量均已正确定义并且赋值,以下与其他三组输出结果不同的一组语句是_______。
A、x++; printf(“%d\n”,x);
B、n=++x; printf(“%d\n”,n);
C、++x; printf(“%d\n”,x);
D、n=x++; printf(“%d\n”,n);
6、【单选题】若有变量定义:double x=4.5,y=2.5;则表达式(x+y)/2+(int)x%(int)y结果为__ ___。
A、3.5
B、5.5
C、3.0
D、5.0
7、【单选题】定义 int x,y; 执行 y=(x=1,++x, x+2); 语句后,x=___ __,y =_ ____。
A、2 4
B、1 3
C、2 3
D、4 4
8、【单选题】表达式13/4*sqrt(6.25)/8 值的数据类型为__________。
A、int
B、double
C、float
D、不确定
9、【单选题】 在以下的运算符中,运算对象都必须是整型数的是 。
A、%
B、+
C、++
D、( )
10、【单选题】设x是double型变量,则能将x的值四舍五入保留到小数点后两位的表达式是 。
A、(x*100.0+0.5)/100.0
B、(int)(x*100+0.5)/100.0
C、 x*100+0.5/100.0
D、(x/100+0.5)*100.0
11、【单选题】若有定义:int a=1,b=1,c,d;,则语句c=(a++) + (++b); 执行后a=________;b=_________,c=_________。
A、2 2 4
B、 2 2 3
C、1 1 2
D、1 2 3
12、【单选题】将计算半周长的数学公式:<img src="http://edu-image.nosdn.127.net/_PhotoUploadUtils_d0d6b9bc-9a98-4e47-bd33-7550558a6656.png" />写成如下各种形式,已知a、b、c均为整型变量,不正确的是________。
A、x=0.5*(a+b+c)
B、x=1/2*(a+b+c)
C、x=(a+b+c)/2.0
D、x=(float)(a+b+c)/2
E、x=1.0/2*(a+b+c)
F、x=(float)((a+b+c)/2)
13、【单选题】设有语句:int a = 3 , b =5, m; 则执行语句:m = a=3 a+b8 后,m的值为_____。
A、0
B、1
C、2
D、3
14、【单选题】需要将一个三位数字的整型数x中的十分位数字b2(如368中的6)提取出来,下列C语句________不能实现。
A、b2=x%100/10
B、b2=x/10%10
C、b2=x/100;b2=(x-b2*100)/10
D、b2=x%10/10
15、【单选题】请将三角形面积公式:<img src="http://edu-image.nosdn.127.net/_PhotoUploadUtils_4472121c-663f-4b23-9095-a2f517b5e43c.png" style="border: 0px; vertical-align: top; max-height: 520px; max-width: 520px; font-family: Arial, Hiragino Sans GB, Microsoft YaHei, 微软雅黑, Helvetica, sans-serif; background-color: rgb(234, 234, 234); white-space: normal;" />写成合法的C语言表达式_______。
A、sqrt(s(s-a)(s-b)(s-c))
B、sqrt(s*(s-a)*(s-b)*(s-c))
C、sqrt(s*(s-a)(s-b)(s-c))
D、sqrt(s.(s-a).(s-b).(s-c))
16、【单选题】设已定义字符型变量ch,执行语句:ch=’D’+32-3; 后ch的值为__________。
A、d
B、a
C、b
D、A
E、B
17、【单选题】在C语言的赋值表达式中,赋值符号左边必须是已经定义过的_________。
A、变量
B、变量名
C、表达式
D、常量
E、函数
F、任意符号
18、【填空题】设有语句:int a=7; float x=2.5, y=4.7;,则表达式x+a%3*(int) (x+y)%2/4的值是 。(小数点后面保留一位)
A、
19、【填空题】若有int x=1,y=1,表达式(!x || y--)的值等于 。
A、
20、【填空题】若有int n = 2;执行语句:n += n-= n*n后, n= 。
A、
21、【填空题】若有int n = 2;执行语句:n += n-= n*=n后, n= 。
A、
22、【填空题】设有语句:int a = 3 , b =5, m; 则执行语句:(m = a=3) a+b8 后,m的值为___。
A、
4.1 随堂测验
1、【单选题】C语言的语句分为____类
A、5
B、4
C、6
D、3
2、【单选题】用流程图描述一个只有顺序结构而没有选择结构和循环结构的算法时,一定用不到的流程图框型是______。
A、起止框
B、输入/输出框
C、处理框
D、判断框
3、【多选题】下列可以控制循环结构的控制语句是:______
A、for语句
B、while语句
C、do...while语句
D、switch语句
4.2 随堂测验
1、【单选题】下列可能出现在顺序结构程序中的控制语句是__________
A、if语句
B、for语句
C、while语句
D、return语句
2、【判断题】可以将例4.1中的两条语句:area=sqrt(p*(p-edge1)*(p-edge2)*(p-edge3));printf(area=%lf\n,area);合并为一条语句:printf(area=%lf\n,sqrt(p*(p-edge1)*(p-edge2)*(p-edge3)));同时删除area变量的定义。
A、正确
B、错误
4.3 随堂测验
1、【单选题】以下关于单分支if和双分支if的描述中不正确的是_____________.
A、单分支if和双分支if都可以用于处理存在两种可能选择的情况
B、单分支if和双分支if在if后的条件满足时都只允许执行一条语句
C、 单分支if和双分支if在if后的条件不满足时都不执行任何语句
D、 单分支if和双分支if在语法上都看成是一条语句
2、【单选题】下列四段代码,哪一段的执行效果与其他三种不同__________.
A、if (x>0) y=1; else if (x<0) y=-1; else y=0;
B、if (x>=0) if (x>0) y=1; else y=0;else y=-1;
C、y=1;if (x==0) y=0;if (x<0) y=-1;
D、y=1;if (x==0) y=0;else y=-1;
3、【单选题】关于嵌套if语句与switch语句的关系描述中不正确的是__________.
A、二者都可以处理三种及以上可能的选择
B、二者的适用范围完全相同
C、switch语句总是可以用嵌套if语句来完全等效替代,反之不然
D、二者都是控制选择结构的语句,语法上都是一条语句
4、【单选题】关于switch语句的描述中不正确的是__________.
A、switch后的表达式类型不可以是实型
B、每一个case后的常量只能有一个
C、default分支必须要有,用于处理swith后的表达式结果与所有常量均不相等时的情况
D、在每个分支处理结束后配合使用break语句才能真正实现逻辑上的多分支处理
4.4 随堂测验
1、【单选题】C 语言中 while 和 do-while 循环的主要区别是 __。
A、 do-while 的循环体至少无条件执行一次而while的循环体可能一次也不执行
B、while 的循环控制条件比 do-while 的循环控制条件严格
C、do-while 允许从外部转到循环体内
D、do-while 的循环体不能是复合语句
2、【单选题】以下程序段 __。x=-1;do { x=x*x; } while(!x);
A、是死循环
B、循环体执行二次
C、循环体执行一次
D、有语法错
3、【单选题】若k是int类型变量,有以下for语句:for(k=-1; k=1; k++) printf(*****\n);下面关于语句执行情况的叙述中正确的是________。
A、循环体执行两次
B、循环体执行一次
C、循环体一次也不执行
D、死循环
4、【单选题】假设程序中已有定义:int s=0, i;下列哪一段代码无法正确实现求1到10的和______。
A、for (i=1; i<=10 ;i++) s+=i;
B、for (i=1; ; i++) { if (i>10) break; s+=i; }
C、i=1; while (i<=10) s+=i++;
D、i=1;do{ s+=++i;}while (i<=10);
4.5 随堂测验
1、【单选题】下面程序段中,循环语句的循环次数是______。int x=0;while( x6 ){ if ( x%2 ) continue; if ( x==4 ) break; x++; }
A、1
B、4
C、6
D、死循环
2、【判断题】设有变量定义: int i;下列两段代码的执行效果完全相同。第一段代码:for (i=1;i=5;i++) { if (i%2) printf(*); else continue; printf(#); }第二段代码:for (i=1;i=5;i++) if (i%2) { printf(*); printf(#); }
A、正确
B、错误
4.6 随堂测验
1、【单选题】有语句定义:int x,y;,则程序段中“{…循环体….} ”的执行次数是 。for (i=5; i; i--) for (j=0; j4; j++) {…循环体….}
A、20
B、24
C、25
D、30
2、【判断题】打印一个规则图形需要用到两层循环,外层控制行变化,第一层的循环体内最多需要完成三个功能:处理前导空格(可能要用到内层循环)、打印本行图形(可能要用到内层循环)、换行。
A、正确
B、错误
第四章编程
第四章单元测验
1、【单选题】下列程序段执行后,m的值为______。int a=0, b=20, c=40, m=60;if (a) m=a;else if(b) m=b;else if(c) m=c;
A、0
B、20
C、40
D、60
2、【单选题】已有定义“int x = 0, y = 3;”,对于下面if语句,说法正确的是______。 if (x = y) printf(“X与Y相等\n”);
A、输出:X与Y相等,且执行完后x等于y
B、无输出
C、输出:X与Y相等,但执行完后x不等于y
D、编译出错
3、【单选题】关于switch语句,下列说法中不正确的是______。
A、case语句必须以break结束
B、default分支可以没有
C、switch后面的表达式可以是整型或字符型
D、case后面的常量值必须唯一
4、【单选题】下面程序段的运行结果是______。int a, b=0; for ( a=0 ; a++=2 ; ) ; b += a; printf(%d, %d\n,a,b);
A、3,6
B、3,3
C、4,4
D、语法错误
5、【单选题】下面程序段中,循环语句的循环次数是______。int x=0;while( x6 ){ if ( x%2 ) continue; if ( x==4 ) break; x++;}
A、死循环
B、1
C、4
D、6
6、【单选题】若变量已正确定义,有以下程序段:int a=3,b=5,c=7;if(ab) a=b; c=a;if(c!=a) c=b;printf(%d,%d,%d\n,a,b,c);其输出结果是________。
A、程序段有语法错
B、3,5,3
C、3,5,5
D、3,5,7
7、【单选题】下列错误的语句是 __。
A、if(a>b) printf("%d",a);
B、if(a) printf("%d",a);
C、 if (1) printf("%d",a);
D、if(a) ; a++; else a--;
8、【单选题】下列 __循环不是无限循环。
A、for(y=0;x=1;++y);
B、for(; ; x=0);
C、while(x=1){x=1;}
D、for(y=1,x=1;x>=++y ; x++);
9、【单选题】若a、b已定义为int 类型的变量,则执行以下语句后b的值是 __。a=1; b=10;do {b-=a; a++;} while (b--0);
A、9
B、-2
C、-1
D、8
10、【单选题】设所有的变量均为整型,下列循环执行结束后,变量m的值为 __。for (i='a';i='e';i++){ m=1; for (j=5;j=0;j--)m+=(i-100)*j; }
A、1
B、0
C、16
D、15
11、【单选题】有下列程序段:int i,sum=0; for(i=1; ;sum++) { if (sum10) break; sum+=++i; }该程序段执行结束后, sum和i的值分别是______
A、11,4
B、12,4
C、16,5
D、11,5
12、【单选题】要求读入一个整数n,其值的范围是[1,10],即:n大于等于1,同时小于等于10.如果输入的n不在这个有效范围,则重新输入,直到满足范围规定为止。则可以用do...while语句控制。int n;do{ scanf(%d,n);}while ( ________________________ );下列哪一个条件填入后无法正确控制?
A、n<1||n>10
B、!(n>=1&&n<=10)
C、!(n>0&&n<11)
D、n>=1||n<=10
13、【单选题】有以下程序段,while 循环的循环体执行的次数是 。int k=0;while(k!=1) k++;
A、0次
B、1次
C、有语法错
D、无限次
14、【单选题】下列程序段执行结束后,k的值为______ int i,j,k=0; for (i=1;i=3; i++) for (j=1;j=i; j++) k+=i*j;
A、25
B、20
C、30
D、36
15、【单选题】有如下程序段:int x; scanf(%d,x); switch ( x ) { case 9: x++; break; case 10: x++; case 11: x++; break; default: x++; }如果最初输入的x的值为10,则switch语句结束后x的值为________,
A、10
B、11
C、12
D、13
16、【填空题】#include stdio.hint main( ){ int x=1, y=1, z=1; switch(x) { case 1: switch(y) { case 1: printf(!!); break; case 2: printf(@@); break; case 3: printf(##); break; } case 0: switch(z) { case 0: printf($$); case 1: printf(^^); case 2: printf(); } default: printf(**);} return 0;}该程序的运行结果是________ (提示:输出的各字符之间没有空格,在英文半角输入状态下输入的字符有效)
A、
17、【填空题】#include stdio.hint main( ){ int m=0, n=4521; do{ m = m * 10 + n % 10; n /= 10; }while(n); printf( %d\n, m ); return 0;}该程序的运行结果是________
A、
18、【填空题】#include stdio.hint main( ){ int x, y=0, z=0; for ( x=1 ; x=5 ; x++ ) { y = y + x; z = z + y;} printf( %d\n, z ); return 0;}该程序的运行结果是________
A、
19、【填空题】#includestdio.hint main( ){int a=1, b=2;for( ; a8 ; a++ ){ a += 2; if ( a == 6 ) continue; if ( a 7 ) break; b++; }printf( %d,%d\n, a, b ); return 0;}该程序的运行结果是________
A、
20、【填空题】#include stdio.hint main(){int x=5,y=4,z=3; if(xyz) printf(right); else printf(wrong); return 0;}该程序的运行结果是________
A、
21、【填空题】循环的终止一般是在while后的表达式或for语句的表达式2的值为假的时候不再进入循环体,如果希望从循环体中直接退出循环,则可以通过在循环体内使用_____语句实现。
A、
22、【填空题】switch语句中的______ 分支是可选项,表示switch后的表达式与任何case后的常量都不相等时执行此分支。
A、
5.1 随堂测验
1、【单选题】在C语言中,模块化程序设计中的子模块通常是指 。
A、子程序
B、子过程
C、函数
D、方法
2、【填空题】C程序的函数主要分为库函数和 函数。
A、
5.2 随堂测验
1、【单选题】以下 不是函数首部的三要素。
A、函数名
B、形式参数表
C、返回值类型
D、函数体
2、【单选题】函数的返回值类型由________决定。
A、return后的表达式类型
B、定义函数时指定的返回值类型
C、调用函数时临时决定
D、主调用函数的类型
3、【判断题】函数声明的作用是把函数的首部信息通知编译系统,以便在调用该函数时进行对照检查。
A、正确
B、错误
5.3 随堂测验
1、【单选题】若有函数原型:double f ( int , double ) ;主函数中有变量定义:int x=1 ; double m=1.6 , n ; 下列主函数中对f函数的调用错误的是 。
A、n=f(x, m+1);
B、printf("%f", f(x+2, 2.4));
C、f(x, m);
D、n=f(x);
2、【单选题】若主函数有变量定义:int x=1 ; double y=2.3 ; 且有合法的函数调用语句f ( y , x); 则下列关于函数f的原型声明中一定错误的是 。
A、void f(double, int);
B、int f(int , int);
C、int f(double, double);
D、void f(double, int, int);
3、【单选题】以下程序的运行结果是 。#include stdio.hint Min(int x, int y){ return xy?x:y; }int main( ){int x=13,y=5,z=22; printf(%d\n,Min(x,Min(y,z))); return 0;}
A、3
B、4
C、5
D、6
5.4 随堂测验
1、【单选题】下面关于函数的理解,不正确的是 。
A、函数可以嵌套定义
B、函数可以嵌套调用
C、函数可以没有形式参数
D、函数的缺省返回类型为int型
2、【判断题】在C语言中,一个函数可以直接或间接地调用自己。
A、正确
B、错误
5.5 随堂测验
1、【单选题】下面哪一种变量一定不是局部变量 。
A、静态变量
B、形式参数变量
C、外部变量
D、自动变量
2、【单选题】下面关于静态局部变量的描述,不正确的是 。
A、静态局部变量只被初始化一次
B、静态局部变量作用域为整个程序
C、静态局部变量生命期为整个程序
D、静态局部变量作用域为当前函数或语句块
3、【单选题】关于同名问题,下列哪一种理解不正确 。
A、不同函数的局部变量可以同名
B、形式参数可以与对应的实在参数变量同名
C、外部变量可以与局部变量同名
D、形式参数可以与函数体内的局部变量同名
4、【单选题】关于作用域的描述,下列哪一种说法是正确的 。
A、形式参数的作用域一定是它所在的整个函数
B、全局变量的作用域一定是整个程序
C、局部变量的作用域一定是整个函数
D、静态局部变量的作用域不仅限于本函数
5.6 随堂测验
1、【判断题】模块化程序设计的基本思想是自底向上、不断组合。
A、正确
B、错误
2、【填空题】C语言程序的基本单位是 。
A、
第五章编程
第五章单元测验
1、【单选题】函数的返回值类型由________决定。
A、return后的表达式类型
B、定义函数时指定的返回值类型
C、调用函数时临时决定
D、主调用函数的类型
2、【单选题】以下选项中叙述错误的是________。
A、C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值
B、C程序的复合语句内可以定义变量,其作用域仅限本复合语句内
C、C程序函数中定义的自动变量,系统不自动赋确定的初值
D、C程序函数的形参不可以说明为static型变量
3、【单选题】对于 C 语言的函数,下列叙述中正确的是________。
A、函数的定义不能嵌套,但函数调用可以嵌套
B、函数的定义和调用都不能嵌套
C、函数的定义可以嵌套,但函数调用不能嵌套
D、函数的定义和调用都可以嵌套
4、【单选题】以下函数调用语句中含有________个实参。 func((exp1,exp2),(exp3,exp4,exp5));
A、1
B、2
C、4
D、5
5、【单选题】若主函数有变量定义:int x=1 ; double m=2.3 ; 且有合法的函数调用语句f ( m , x); 则下列关于函数f的原型声明中一定错误的是 。
A、void f ( double , int );
B、int f (int , int );
C、void f ( double , int , int );
D、int f ( double , double );
6、【单选题】关于return语句的理解,下列哪一种说法是错误的 。
A、当函数具有非void的返回值类型时,函数体中一定要有return 语句
B、当函数的返回值类型为void时,函数体中可以没有return语句
C、return 后的表达式若与函数返回类型不一致时,一定会在编译时出错
D、当执行return语句时,系统自动生成一个无名变量,获取return后的表达式的值
7、【单选题】有以下程序int fun(int x,int y){return(x+y);}int main(){ int a=1,b=2,c=3,sum; sum=fun((a++,b++,a+b),c++); printf(%d\n,sum); return 0; } 执行后的输出结果是________。
A、5
B、6
C、8
D、9
8、【单选题】若已定义一个返回值为void型的函数,则调用该函数的叙述中正确的是________。
A、函数调用只能作为独立的函数调用语句存在
B、函数调用可以出现在表达式中
C、函数调用可以作为一个函数实参
D、函数调用可以作为一个函数形参
9、【单选题】设有下列程序段:static char b=2;void Y ( ){ static float d=4;.......}int a=1;void X ( ){ int c=3; ...... }关于程序段中各变量的属性,以下叙述中错误的是________。
A、a是全局变量,函数X可以访问,函数Y不能访问
B、b是全局变量,函数X和函数Y都可以访问
C、c是自动局部变量,函数X可访问,函数Y不可访问
D、d是静态变量,函数X和函数Y都可以访问
10、【单选题】关于同名问题,下列哪一种理解不正确 。
A、不同函数的局部变量可以同名
B、形式参数可以与对应的实在参数变量同名
C、外部变量可以与局部变量同名
D、形式参数可以与函数体内的局部变量同名
11、【单选题】在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 。
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回实参
D、传递方式有用户指定
12、【单选题】若函数定义时不指明函数类型,则其默认的返回值类型是 。
A、void
B、任意类型
C、int
D、double
13、【单选题】以下 存储类型在变量未赋值的情况下,系统自动初始化为0。
A、auto
B、register
C、static
D、省略不表明
14、【单选题】以下叙述中正确的是 。
A、给函数名命名时允许用数字开头
B、在函数体中只能出现一次return语句
C、函数调用时,不必区分函数名称的大小写
D、调用函数时,函数名必须与被调用函数定义时的函数名完全一致
15、【单选题】下面关于静态局部变量的描述,不正确的是______。
A、静态局部变量存储在静态数据区
B、静态局部变量全局可见
C、静态局部变量还是局部可见
D、静态局部变量只会被初始化一次
16、【填空题】C语言程序的基本单位是 。
A、
17、【填空题】一个函数的完整定义由函数首部和 组成。
A、
18、【填空题】在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是________(传值或传地址这两种之间选填一个)。
A、
19、【填空题】若函数定义时不指明函数类型,则其默认的返回值类型是________。(用表达类型的关键字来描述)
A、
20、【填空题】定义静态局部变量的关键字是 。
A、
21、【填空题】每一个C语言源程序必须有一个__________函数。
A、
22、【填空题】C语言中,表示函数返回的关键字是 。
A、
23、【填空题】按作用域变量可分为两类,分别是局部变量和 变量。
A、
6.1 随堂测验
1、【单选题】若有说明:int a[10];则对a 数组元素的正确引用是________。
A、a[10]
B、a[3.5]
C、a(5)
D、a[10-10]
2、【单选题】C语言中,数组名代表________。
A、数组全部元素的值
B、数组首地址
C、数组第一个元素的值
D、数组元素的个数
3、【单选题】以下不能对二维数组a进行正确初始化的语句是________。
A、int a[2][3]={0};
B、int a[][3]={{1,2},{0}};
C、int a[2][3]={{l,2},{3,4},{5,6}};
D、int a[][3]={1,2,3,4,5,6};
4、【单选题】若有以下说明:int array[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c=’a’,d,g;则数值为4的表达式是 __。
A、array['d'- 'c']
B、array['d'-c]
C、array[g-c]
D、array[4]
6.2 随堂测验
1、【单选题】以下程序编译运行后输出 。#include stdio.hdouble F(int x){return(3.14*x*x);}int main(){ int a[3]={1,2,3}; printf(%5.2f\n,F(a[1])); return 0;}
A、3.14
B、12.56
C、28.26
D、编译出错
2、【单选题】以下程序运行后的输出结果是 。#include stdio.h#define N 20void fun(int a[],int n,int m){ int i,j; for(i=m;i=n;i--) a[i+1]=a[i];}int main(){ int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i5;i++) printf(%d,a[i]); return 0;}
A、10234
B、12344
C、12334
D、12234
6.3 随堂测试
1、【单选题】以下定义数组的语句中错误是的 。
A、int num[]={1,2,3,4,5,6};
B、int num[][3]={{1,2},3,4,5,6};
C、int num[2][4]={{1,2},{3,4},{5,6}};
D、int num[][4]={1,2,3,4,5,6};
2、【单选题】以下对二维数组a的说明正确的是 。
A、int a[3][];
B、float a(3,4);
C、double a[1][4];
D、float a(3)(4);
3、【单选题】以下对二维数组a进行正确初始化的语句是 。
A、int a[2][ ]={0};
B、int a[][3]={{1,0,1},{5,2,3}};
C、int a[2][4]={{1,0,1},{5,2},{3}};
D、int a[][3]={{1,0,1,0},{},{5,2}};
6.4 随堂测验
1、【填空题】以下程序的运行结果是: 。#include stdio.h#define N 4void fun(int a[][N],int b[]){int i;for(i=0;iN;i++)b[i]=a[i][i]-a[i][N-1-i];}int main(){int x[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;iN;i++)printf(%d,,y[i]);printf(\n);return 0;}
A、
2、【填空题】以下程序的运行结果是: 。#include stdio.hint main(){int a[4][4]={{1,4,3,2},{8,5,6,7},{4,9,2,1},{3,2,5,1}},i,j,k,t;for(i=0;i4;i++)for(j=0;j3;j++)for(k=j+1;k4;k++)if(a[j][i]a[k][i]){t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;}for(i=0;i4;i++)printf(%d,,a[i][i]);return 0;}
A、
6.5 随堂测验
1、【单选题】以下程序段的作用是: 。int a[]={4,0,2,3,1},i,j,t;for(i=1;i5;i++){ t=a[i]; j=i-1; while(j=0ta[j]) { a[j+1]=a[j]; j--; } a[j+1]=t; }
A、对数组a进行插入排序(升序)
B、对数组a进行插入排序(降序)
C、对数组a进行选择排序(升序)
D、对数组a进行选择排序(降序)
2、【填空题】若输入52CR,则下面程序的运行结果是 。#include stdio.hint main(){ int a[8]={6,12,18,42,46,52,67,73}; int low=0,mid,high=7,x; printf(Input x:); scanf(%d,x); while(low=high) { mid=(low+high)/2; if(xa[mid]) low=mid+1; else if(xa[mid]) high=mid-1; else break; } if(low=high) printf(%d\n,mid); else printf(error!\n); return 0;}
A、
3、【填空题】 以下程序的运行结果为 。#include stdio.hvoid fun(int a[],int n){int t,i,j;for(i=0;in-1;i++)for(j=0;jn-i-1;j++)if(a[j]a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}int main(){int c[10]={1,2,3,4,5,6,7,8,9,0},i;fun(c,5);for(i=0;i10;i++)printf(%d,,c[i]);printf(\n);return 0;}
A、
第六章编程
第六章单元测验
1、【单选题】在C 语言中,引用数组元素时,其数组下标的数据类型不允许的是________。
A、整型常量
B、字符型常量
C、整型常量或整型表达式
D、实型数
2、【单选题】short int类型变量占用两个字节,有如下定义:short int array[10]={0,2,4};,则数组array在内存中所占字节数是________。
A、3
B、 6
C、10
D、20
3、【单选题】若有说明:int a[3][4];则对a数组元素的非法引用是________。
A、a[0][2*1]
B、a[1][3]
C、a[4-2][0]
D、a[0][4]
4、【单选题】下面程序中有错误的行是 (每行程序前面的数字表示行号)________。1int main()2 { int a[3]={1};3 int i;4 scanf(%d,a);5 for(i=1;i=3;i++) a[0]=a[0]+a[i];6 printf(a[0]=%d\n,a[0]);7 return 0;8}
A、2
B、5
C、6
D、4
5、【单选题】以下程序给数组所有元素输入数据,填入 能完成该功能。#includestdio.h int main() { int array[5],i=0;while(i5)scanf(%d, ___);return 0;}
A、&array[i++]
B、&array[i+1]
C、array+i
D、&array[++i]
6、【单选题】若定义int a[][4]={1,2,3,4,5,6,7,8};a[1][0]的值是 。
A、3
B、 4
C、 5
D、1
7、【单选题】以下错误的定义语句是 。
A、 int x[ ][3]={{0},{1},{1,2,3}};
B、 int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C、int x[4][ ]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
D、 int x[ ][3]={1,2,3,4};
8、【单选题】以下程序的输出结果是 。# include stdio.h int main ( ) { int n[2]={0},i,j,k=2;for(i=0;ik;i++)for(j=0;jk;j++)n [j]=n[i]+1;printf(%d\n,n[k-1]);return 0;}
A、不确定的值
B、3
C、2
D、1
9、【单选题】下列正确的一维数组初始化是 。
A、int a[5]={1,2};
B、int a[2]={1,2,3,4,5};
C、int a[5]={ , ,1,2};
D、int a{5}={1,2,3,4,5};
10、【单选题】若定义int m[10]={9,4,12,8,2,10,7,5,1,3};则m[m[4]+m[8]]的值是 。
A、8
B、12
C、10
D、7
11、【单选题】在C语言中,数组名代表 。
A、数组全部元素的值
B、数组首地址
C、数组首个元素的值
D、数组元素的个数
12、【单选题】若有说明:int a[10]; 则对a数组元素的正确引用是 。
A、a[10]
B、a[3.5]
C、a(5)
D、a[0]
13、【单选题】下面程序如果只有一个错误,是 有错。int main() //1{ double a[3]={0}; //2 int i; //3 for(i=0;i3;i++) scanf(%d,a[i]); //4 for(i=1;i3;i++) a[0]=a[0]+a[i]; //5 printf(%f\n,a[0]); //6 return 0; //7} //8
A、第2行
B、第6行
C、第4行
D、没有错误
14、【单选题】若有说明:int a[][4]={0}; 则下面叙述正确的是 。
A、只有元素a[0][0]可得到初值0
B、数组a中各元素都可以得到初值,但其值不一定是0
C、数组a中每个元素都可得到初值0
D、此说明语句不正确
15、【单选题】若有定义int b[5][7]; 根据数组存储顺序,b[0][0]为第1个元素,则第10个元素是 。
A、b[2][5]
B、b[2][4]
C、b[1][2]
D、b[1][5]
16、【填空题】当输入a回车 bc回车 def回车时,下面程序输出的第三行是 。#includestdio.h int main() { char X[6]; int i; for(i=0;i6;i++) X[i]=getchar(); for(i=0;i6;i++) putchar(X[i]); return 0; }
A、
17、【填空题】如下程序执行后输出 。#include stdio.hint main(){ static int a[3][3]; int i,j; for (i=0;i3;i++) for (j=0;j3;j++) a[i][j]=a[j][i]+i*j; printf(%d,%d,a[1][2],a[2][1]); return 0;}
A、
18、【填空题】写出程序的运行结果 。#includestdio.hint fun(int s[],int t[]){ int i,j=0; for(i=0;i10;i++) if(i%2) { t[j]=s[i]; j++; } return j;} int main() { int X[10]={1,2,3,4,5,6,7,8,9,10}; int Y[10]; int m,i; m=fun(X,Y); for(i=0;im;i++) printf(%d,Y[i]); printf(\n); return 0; }
A、
19、【填空题】写出程序的运行结果的第二行输出: 。#includestdio.h int main() { int X[4][4]={{11,2,31,14},{5,16,7,4},{18,9,6,10},{17,1,3,12}}; int i,j,k,t; for(i=0;i4;i++) for(j=0;j4;j++) for(k=j+1;k4;k++) { if (X[i][j]X[i][k]) { t=X[i][j]; X[i][j]= X[i][k]; X[i][k]=t; } } for(i=0;i4;i++) { for(j=0;j4;j++) printf(%d,X[i][j]); printf(\n); } return 0; }
A、
20、【填空题】有以下C程序程序运行后的输出结果是 。#include stdio.h#define N 20void fun(int a[],int n,int m){ int i,j; for(i=m;i=n;i--) a[i+1]=a[i];}int main(){ int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i5;i++) printf(%d,a[i]); return 0;}
A、
21、【填空题】若有定义int a[3][5],则sizeof(a)的值是 。
A、
22、【填空题】若有定义int a[3][5],则sizeof(a[0][0])的值是 。
A、
23、【填空题】下列程序的输出结果是 。#includestdio.hvoid fun(int p[]){ printf(%d\n,p[5]); }int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; fun(a[3]); return 0;}
A、
7.1 随堂测验
1、【单选题】有变量定义: int *p,q; 表示定义了______
A、指针变量p和整型变量q
B、两个指针变量p和q
C、两个整型变量p和q
D、这样定义有语法错
2、【单选题】设变量定义为int x, *p=x; ,则*p相当于________。
A、&x
B、*p
C、x
D、*x
3、【单选题】已有定义int k=2,m=3; int *ptr1=k,*ptr2=m;,下面不能正确执行的赋值语句是__
A、k=*ptr1+*ptr2;
B、ptr2=k;
C、ptr2=ptr1;
D、ptr2=&k;
7.2 随堂测验
1、【单选题】若有定义及赋值:int
a[10]={0,1,2,3,4,5,6,7,8,9},*p; p=a+1; , 则不能表示数组a中元素值为4的那个元素地址的表达式是______。
A、&a[4]
B、p+4
C、a+4
D、p+3
2、【单选题】若有说明 int a[5][4];,则对 a数组的i行j列(假设i,j已正确说明)元素值的引用正确的是______ (说明:0行0列元素为a[0][0])。
A、*(*(a+i)+j)
B、(a+i)[j]
C、*(a+i+j)
D、*(a+i)+j
3、【单选题】若有以下定义和语句:int a[2][3],(*p)[3]=a;则对a数组元素地址的正确引用为______。
A、*(p+2)
B、p[2]
C、p[1]+1
D、(p+1)+2
4、【单选题】若有定义: int *p[4];,则标识符p______。
A、是一个指向整型变量的指针
B、是一个指针数组名
C、是一个指针,指向一个含有4个整型元素的一维数组
D、说明不合法
7.3 随堂测验
1、【单选题】 有函数原型声明: void f( int *);主函数中有变量定义: int a,b[3],*p=a;下列函数调用语句错误的是_______
A、f(&a);
B、f(b+1);
C、f(a);
D、f(p);
2、【单选题】 想要通过一个指针形参改变对应实参变量的值,在写程序的时候需要符合几个条件,下列哪一个条件是错误的_______
A、形参设为指针参数
B、对应实参为需要改变值的实参变量的地址
C、在函数体中通过间接访问方式修改指针形参所指向的内容
D、在函数体中对指针形参本身进行修改
3、【单选题】函数中用指针形参接受数组实参,其优点不包括下列哪一条______
A、可以直接使用实参数组的空间
B、可以直接操作实参数组的元素
C、只需要存放一个指针的空间开销,而不必复制整个数组空间
D、书写代码简单
4、【判断题】如果一个函数想“返回”3个整数值,前两个参数是需要提供的原始数据,则函数原型可以写成: int f(int ,int ,int *,int *);
A、正确
B、错误
7.4 随t堂测验
1、【单选题】关于选择法排序(由小到大排序),以下说法不正确的是________
A、n个元素共需要进行n-1趟排序
B、每一趟排序最多只做一次两个元素的互换操作
C、每一趟排序时是比较相邻元素的大小
D、每一趟排序时首先寻找本趟最小元素所在的下标
2、【单选题】有变量定义: int a[10], s; 有函数调用语句 s=f (a,10); 则以下的函数原型声明中错误的是____________
A、int f (int a[ ], int n);
B、int f (int *a, int n);
C、int f (int a, int n);
D、int f (int a[10], int n);
3、【判断题】矩阵用二维数组来描述,以矩阵形式输出二维数组所有元素时,printf(\n);语句应该放在二层循环外、一层循环体内。
A、正确
B、错误
7.5 随堂测验
1、【单选题】如下定义:int a[3]={5,7,18},b=3; const int *p=a+1; , 下列语句错误的是______。
A、 *p=2;
B、 p=&b;
C、 p++;
D、 p--;
2、【单选题】有变量定义如下: int a=10, *p=a, **q=p;下列哪一个选项不能表示10______。
A、a
B、*p
C、*q
D、**q
3、【单选题】有变量定义如下: int *p;通过p指针申请动态空间的语句中表达错误的是________
A、p=(int *) malloc(sizeof(int));
B、p=(int *) malloc(10*sizeof(int));
C、p=(int *) calloc(10*sizeof(int));
D、p=(int *) calloc(10,sizeof(int));
4、【判断题】int (*pf) (int x); 与 int *pf (int x); 是不一样的,前者是定义了一个函数指针pf ,后者是声明了一个返回值类型为int *的函数。
A、正确
B、错误
第七章编程
第七章单元测验
1、【单选题】如有定义int a,*p=a;输入语句为scanf(%d,_________);或者scanf(%d,_________);输出为printf(%d,________);或者printf(%d,________)。
A、&a,p,a,*p
B、&a,&p,a,p
C、a,&p,a,*p
D、&a,p,a,p
2、【单选题】设int *p, x, a[5]={1,2,3,4,5}; p=a; 能使x的值为2的语句是 。
A、 x=a[2];
B、x=*(p+2);
C、 a++; x=*a;
D、x=*(a+1);
3、【单选题】下列对指针p的操作,正确的是 。
A、int *p; *p=2 ;
B、int a[5]={ 1,2 ,3,4,5},*p=&a; *p=5 ;
C、int a,*p=&a;*p=2;
D、float a[5]; int *p=&a;
4、【单选题】若有说明:int a[ ]={15,12,-9, 28,5, 3 },*p=a, 则下列哪一种表达错误______。
A、*(a=a+3)
B、*(p=p+3)
C、p[p[4]]
D、*(a+*(a+5))
5、【单选题】若有说明:int *p1,*p2,m=5,n; 以下均是正确赋值语句的选项是________。
A、p1=&m; p2=&p1;
B、p1=&m; *p1=*p2;
C、p1=&m; p2=p1;
D、p1=&m; *p2= *p1;
6、【单选题】若定义int m[10]={9,4,12,8,2,10,7,5,1,3},*p=m;下列哪一个表达式的结果与其他3个表达式的结果不同________。
A、sizeof(p[3])
B、sizeof(m)
C、sizeof(*m)
D、sizeof(*p)
7、【单选题】设有定义:double x[10],*p=x;,以下能给数组x下标为6的元素读入数据的正确语句是________。
A、scanf("%f",&x[6]);
B、scanf("%lf",*(x+6));
C、scanf("%lf",p+6);
D、scanf("%lf",p[6]);
8、【单选题】若有定义及赋值:int a[10]={0,1,2,3,4,5,6,7,8,9},*p; p=a+1; 则引用数组a中值是5的元素的表达式是________。
A、a[4]
B、*(p+4)
C、a+5
D、*p[5]
9、【单选题】设int x[]={1,2,3,4,5,6},*p=x; 则值为3的表达式是________。
A、p+=2; *p++;
B、p+=2; *++p;
C、p+=3; *p;
D、p+=2; ++*p;
10、【单选题】设有下面的程序段:int arr [10]={1,2,3}, *p=arr; 下列叙述正确的是________
A、arr和p完全相同
B、*(p+i)和&arr [i]相等
C、*(p+4)与arr [4]相等
D、arr++表示arr [1]的地址
11、【单选题】 有定义,int a[2][3],(*p)[3]; p=a;对a中数组元素值的正确引用是
A、*(p+2)
B、*p[2]
C、 p[1]+1
D、*(*(p+1)+2)
12、【单选题】设有语句int a[2][3],下面哪一种不能表示元素a[i][j] ________
A、*(
a[i] + j )
B、*(*(
a+ i ) + j )
C、*( a + i*3 + j )
D、*(
*a + i*3 + j )
13、【单选题】若有定义: int *p[4];,则标识符p______
A、是一个指向整型变量的指针
B、是一个指针数组名
C、是一个行指针变量,指向一个含有4个整型元素的一维数组
D、非法定义
14、【单选题】有变量定义如下: int a=10, *p=a, **q=p;下列哪一个选项不能表示10______。
A、a
B、*p
C、*q
D、**q
15、【单选题】有变量定义如下: int *p;通过p指针申请动态空间的语句中表达错误的是________
A、p=(int *) malloc(sizeof(int));
B、p=(int *) malloc(10*sizeof(int));
C、p=(int *) calloc(10*sizeof(int));
D、p=(int *) calloc(10,sizeof(int));
16、【填空题】#includestdio.hvoid sub(int x,int y,int *z){ *z=y-x;}int main(){ int a,b,c; sub(10,5,a); sub(7,a,b); sub(a,b,c); printf(%d,%d,%d\n,a,b,c); return 0;}该程序的输出结果为_________________
A、
17、【填空题】#include stdio.hvoid fun(int x,int *y){ x+=*y; *y+=x;}int main( ){ int x=5,y=10; fun(x,y); fun(y,x); printf(%d,%d,x,y); return 0;}该程序的输出结果为_________________
A、
18、【填空题】#include stdio.hint main( ){ int arr[10]={2,3,-9,5,7,0,4,-1,6,-7},*p; int sum=0; for (p=arr[3];parr+10;) sum+=*p++; printf(%d,sum); return 0;}该程序的输出结果为_________________
A、
19、【填空题】#include stdio.hint main(){ int j, a[]={1,3,5,7,9,11,13,15},*p=a+5; for(j=3; j; j--) switch(j) { case 1: case 2: printf(%d,,*p++); break; case 3: printf(%d,,*(--p)); } return 0;}该程序的输出结果为_________________
A、
20、【填空题】#include stdio.h#define N 5int fun(int *s, int a, int n){ int j; *s=a; j=n; while(a!=s[j]) j--; return j;}int main(){ int s[N+1]; int k; for(k=1; k=N; k++) s[k]=k+1; printf(%d\n,fun(s,4,N)); return 0;}该程序的输出结果为_________________
A、
21、【填空题】对n个元素的一维数组进行选择法排序,需要进行______趟排序.(答案中间不要加空格,避免格式错误)
A、
22、【填空题】有定义: int a[5]={0,1,2,3,4},*p=a; 为了表达元素值为2的元素,除了可以用a[2]表示以外,还可以有___种等效的表示方法?(答案只填写一个阿拉伯数字)
A、
微信扫码添加好友
如二维码无法识别,可拨打 13662661040 咨询。