填空题:
1、C语言中基本的数据类型有:整型、字符型、浮点型。
2、C语言中普通整型变量的类型说明符为 int ,在内存中占 2 字节,有符号普通整型的数据范围是。
3、整数-35在16位机内的补码表示为。
地址。取运算对象的地址。“*”运算符的作用是取指针变量所指向的内容。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是 a=1,b=3,c=2 。
9、设整型变量n的值为2,执行语句n+=n-=n*n后,n的值是 -4 。
10、下列程序的输出结果是。
int ast(int x,int y,int * cp,int * dp)
{ *cp=x+y;*dp=x-y;}
main()
{ int a=4,b=3,c,d;
ast(a,b,&c,&d);
printf("%d,%d/n",c,d;}
11、C语言的预处理语句以____#号______开头。
12、表达式7+8>2&&25%5的结果是_______0_______________。
13、C语言中putchar(c)函数的功能是___________输出字符______________________。
14、语句int *p;的含义是______________定义指针变量p为整型_____________________________。
15、定义fp为文件型指针变量的定义方法为______FILE*fp_________________。
16、语句 int a[3][4];共定义了_____12_______个数组元素。
17、实型变量的类型说明符有:_____float_____、____double________。
18、C语言中数组的下标下限为_______0____________________。
20、设x=4,y=(++x)+(++x);那么y的值为___12_,表达式执行后,变量x的值为___6____。
21、一个变量的指针是指____该变量的地址________________________________________。
22、能够构成一个数组,其元素满足的特点是____同一类型______________________________;那么,构成结构体的成员可以是______不同类型___________________________________。
23、下面运算符< % ++ = 按照优先级从高到低排列顺序为____++ ,%,<,=__________。
24、C程序设计中语句后的符号/*……*/ 所起作用是___注释______________________。
25、写出下面表达式的值:
(1)3*5/7+7%3_____3____ (整数相除结果为整数)(2)x=2;y=4;(x++)+y _6_______ (3)3+4>=7-10_____1______ (4)3>4?3%2:1 __1___________
(5)x=2,y=2;++x||++y___1______ (6)x=3;x+=x-=2____2_____
26、在C语言中,正确的标识符是由____数字,字母,下划线________组成的,且由_以字母或者下划线_开头的。
27、设p=30,那么执行q=(++p)语句后,表达式的结果q为__31__,变量p的结果为__31_。若a为int 类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是____-12_____。
29、在C语言程序中,对文件进行操作首先要_____打开______________;然后对文件进行操作,最后要对文件实行_________关闭_________________操作,防止文件中信息的丢失。
30、以下程序(头文件省略)运行后的输出结果是20,10 。该程序的功能是变量交换。
main()
{ int x=10,y=20,t=0;
if(x!=y) t=x; x=y; y=t;
printf(“%d,%d\n”,x,y); }
31、若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为"读"而打开此文件:fp=fopen( “d1.dat”, “rb”);。
33、在循环中,continue语句与break语句的区别是:continue语句是,break
36、能表述“20
37、结构化程序设计方法规定程序或程序段的结构有三种:顺序结构、(选择结构)和(循环结构)。
38、C语言共提供了三种用于实现循环结构的流程控制语句,它们是(while )、(do )和(for )。
39、若在程序中用到putchar,应在程序开头写上包含命令(#include “stdio.h” ),若在程序中用到strlen()函数时,应在程序开头写上包含命令(# include “string.h”)。
40、设有定义语句static int a[3][4]={{1},{2},{3}};,则a[1][1]值为(0 ),a[2][1]的值为(0 )。
41、“*”称为(指针)运算符,“&”称为(地址)运算符。
42、赋值表达式和赋值语句的区别在于有无(;)号。
43、用{}把一些语句括起来称为(复合)语句
44、设a=12、b=24、c=36,对于scanf (“a=%d,b=%d,c=%d”,&a,&b,&c);语句,输入形式应为()
45、表达式sqrt(s*(s-a)*(s-b)*(s-c));对应的数学式子为()
46、C语言编绎系统在判断一个量是否为“真”时,以(非0 )代表“真”以0代表假
47、C语言从源程序的书写到上机运行输出结果要经过__编辑、编译、连接、执行_____________四个步骤。
48、C语言的表达式与语句的区别在于___________________________________。
49、C语句_____没有________ (有、没有)输入、输出语句。
50、结构化程序的编写有___顺序选择循环____________________________三种程序结构。
51、表达式10/3*9%10/2的值是_____3______________。
52、设有int x=2,y说明,则逗号表达式y=x+5,x+y的值是____9_____________。
53、设有int x=1,则x>0?2*x+1: 0表达式的值是_3_____________________。
54、变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。__y%4==0&&y%100!=0||y%400==0________
55、逻辑运算符&&、||、 !中的优先级是__!&& ||__________________
57、在C语言中,字符串常量是用双引号表示一串字符。
58、若有说明和语句:int a=25,b=60;b=++a;则b的值是26 。
59、若int x=5;while(x>0)printf(“%d”,x--);的循环执行次数为 5 。
60、若有int a[5],*p=a;则p+2表示第 3 个元素的地址。
61、若有说明和语句:int a=5,b=6,y=6;b-=a;y=a++;则b和y的值分别是1,20。
62、已知整型变量a=3,b=4,c=5,写出逻辑表达式a||b+c>c&&b-c的值是 1 。
63、C程序设计的三种基本结构是________、________和________。
64、数组是表示类型相同的数据,而结构体则是若干类型不同数据项的集合。
定义成长整型变量的定义语句是long (int) a,b;
68、设x和y均为整型变量,且x=3,y=2,则1.0*x/y表达式的值为1.5
69、已有定义:float x=5.5;则表达式:x=(int)x+2的值为7.000000
70、已有定义:int x=0,y=0;则表达式:(x+=2,y=x+3/2,y+5)后,变量x的值为2,变量y的值为3,
|| )。
75、设y为int型变量,请写出描述“y是奇数”的表达式(y%2!=0 )。
76、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式()。
77、在C语言中,二维数组元素在内存中的存放顺序是(行列)。
78、若有定义:double x[3][5];则x数组中行下标的下限为(0 ),列小标的上限为( 4 )。
79、若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是(0 ),a[2][2]得到的初值是(8 )。
80、若自定义函数要求返回一个值,则应在该函数体中有一条(return )语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符(void )。
81、函数中的形参和调用时的实参都是数组名时,传递方式为(地址传递),都是变量时,传递方式为(值传递)。
73、1个74、与&&、或||、非! 75、y%2!=076、x 77、行列78、0,4 79、0,8 80、return,void 81、地址传送,值传送 填空题答案: 1、整型、浮点型、字符型。 2、int , 2 , -32768~ +32767 3、1111111111011101 4、-112 5、14,?m? 6、”a”是字符串常量,而?a?是字符常量。 7、存放地址值的变量或常量,或者答地址取运算对象的地址取指针变量所指的内容 8、a=1,b=3,c=2 9、-4 10、7,1 11、#号12、0 13、将变量c中的字符显示到屏幕上。 14、指针变量p为整型15、FILE *fp16、12 17、float double 18、0 20、12,6 21、该变量的地址 22、同一类型;不同类型23、++ % < = 24、注释 25、3, 1, 1, 6 1 2 26、字母、数字、下划线;以字母、下划线开头。 27、4,4 -12 29、打开;关闭。30、20 , 10 变量的交换 31、“d1.dat”, “rb”33、结束本次循环,进入下一次循环;结束循环。 34、2,1 35、#define符号常量常量 36、(x>20 && x<30)||x<-10037、分支结构,循环结果38、while do for 39、#include “stdio.h” # include “string.h”40、a[1][1]=0 , a[2][1]=0 41、* 指针运算符,&地址运算符42、分号;43、复合语句 46、非0 44、a=12,b=24,c=3645 47、编辑、编译、连接、执行48、“表达式”未尾加“;”号就成“语句” 49、没有50、顺序、分支、循环51、3 52、9 53、3 54、y%4==0&&y%100!=0||y%400==0 55、! && || 57、双引号58、26 59、5 60、三(3) 61、1,20 62、1 63、顺序结构、选择结构、循环结构64、类型不同 65、存储在外部介质上的相关数据集合。66、(1).C (2).OBJ (3).EXE(小写也正确) 67、(4)long(int) a,b;68、(5)1.5 69、(6)7.000000 70、(7)2 (8)3 (9)8 71、(10)7 72、(11)类型不同 73、1个74、与&&、或||、非! 75、y%2!=076、x 77、行列78、0,4 79、0,8 80、return,void 81、地址传送,值传送 =========================================================================== 二、选择题(一) 1、设整型变量a为5,使b不为2的表达式是()。 A. b=a/2 B. b=6-(--a) C. b=a%2 D. b=a>3?2:1 2、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与()组成配对关系。 A. 缩排位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D.同一行上的if 3、以下程序的输出结果是( )。int x=10,y=10; printf(“%d %d\n”,x--,--y); A. 10 10 B. 9 9 C. 9 10 D. 10 9 4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( b )。 A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i 5、选出下列标识符中不是合法的标识符的是()。 A. hot_do B. cat1 C. _pri D. 2ab 6、以下程序的输出结果是( a )。 int a=5; float x=3.14; a*=x*(…E? - …A?);printf(“%f\n”,(float)a); A. 62.000000 B. 62.800000 C. 63.000000 D. 62 7、设有说明double (*p1)[N];其中标识符p1是( c )。 A. N个指向double型变量的指针。 B. 指向N个double型变量的函数指针。 C. 一个指向由N个double型元素组成的一维数组的指针。 D. 具有N个指针元素的一维指针数组,每个元素都只能指向double型量。 8、在C程序中有如下语句:char *func(int x,int y); 它是()。 A. 对函数func的定义。 B. 对函数func的调用。 C.对函数func的原型说明。 D. 不合法的。 9、以下程序的输出结果是()。 char str[15]=”hello!”; printf(“%d\n”,strlen(str)); A. 15 B. 14 C. 7 D. 6 10、分析以下程序的输出结果是()。 main() {int a=5,b=-1,c; c=adds(a,b); printf(“%d”,c); c=adds(a,b); printf(“%d\n”,c); } int adds(int x,int y) {static int m=0,n=3; n*=++m; m=n%x+y++; return(m); } A. 2,3 B. 2,2 C. 3,2 D. 2,4 11、下列描述中不正确的是( c )。 A. 字符型数组中可能存放字符串。 B. 可以对字符型数组进行整体输入、输出。 C. 可以对整型数组进行整体输入、输出。 D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。 12、以下程序的输出结果是()。 #define f(x) x*x main() {int a=6,b=2,c; c=f(a)/f(b); printf(“%d\n”,c); } A. 9 B. 6 C. 36 D. 18 13、设有如下定义: int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是()。 A. 1 B. 0 C. 4 D. 3 14、定义如下变量和数组:int i; int x[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 15、以下对二维数组a进行正确初始化的是() A. int a[2][3]={{1,2},{3,4},{5,6}}; B. int a[ ][3]={1,2,3,4,5,6}; C. int a[2][ ]={1,2,3,4,5,6}; D. int a[2][ ]={{1,2},{3,4}}; 16、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( c )。 int x; scanf("%d",&x); if(x++>5) printf("%d",x); else printf("%d\n",x - -); A. 7和5 B. 6和3 C. 7和4 D. 6和4 17、设有如下定义: char *aa[2]={"abcd","ABCD"};则以下说法中正确的是( d )。 A)aa数组成元素的值分别是"abcd"和ABCD" B)aa是指针变量,它指向含有两个数组元素的字符型一维数组 C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D)aa数组的两个元素中各自存放了字符'a'和'A'的地址 18、下列程序的输出结果是( d )。 char *p1="abcd", *p2="ABCD", str[50]="xyz"; strcpy(str+2,strcat(p1+2,p2+1)); printf("%s",str); A. xyabcAB B. abcABz C. ABabcz D. xycdBCD 19、下列程序的输出结果是( c )。 int a[5]={2,4,6,8,10},*P,* *k; p=a; k=&p; printf("%d",*(p++)); printf("%d\n",* *k); A. 4 4 B. 2 2 C. 2 4 D. 4 6 20、不能把字符串:Hello!赋给数组b的语句是()。 A. char b[10]={'H','e','l','l','o','!'}; B. char b[10]; b="Hello!"; C. char b[10]; strcpy(b,"Hello!"); D. char b[10]="Hello!"; 1、C 2、C 3、D 4、B 5、D 6、A 7、C 8、 C 9、 D 10、A 11、C 12、C 13、D 14、C 15、B 16、C 17、D 18、D 19、C 20、B 选择题(二) 1、以下选项中属于C语言的数据类型是()。 A. 复合型 B. 双精度型 C. 逻辑型 D. 集合型 2、以下说法中正确的是()。 A. C语言程序总是从第一个的函数开始执行 B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为()。 A. p+1 B. a+1 C. a++ D. ++p 6、设有如下定义: int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是()。 A. 1 B. 0 C. 4 D. 3 7、定义如下变量和数组: int i, x[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 9、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是()。 if(x++>5) printf("%d",x); else printf("%d\n",x - -); A. 7和5 B. 6和3 C. 7和4 D. 6和4 10、设有如下定义:char *aa[2]={"abcd","ABCD"};则以下说法中正确的是()。 A)aa数组成元素的值分别是"abcd"和ABCD" B)aa是指针变量,它指向含有两个数组元素的字符型一维数组 C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D)aa数组的两个元素中各自存放了字符'a'和'A'的地址 11、以下语句的输出结果是()。 int a=-1,b=4,k; k=(+ +a<0)&&!(b - -<=0); printf("%d,%d,%d\n",k,a,b); A. 1,0,4 B. 1,0,3 C. 0,0,3 D. 0,0,4 15、下列程序执行后输出的结果是()。 int d=1; fun (int p) { int d=5; d + =p + +; printf("%d,",d); } main( ) { int a=3; fun(a); d + = a + +; printf("%d\n",d); } A. 8, 4 B. 9, 6 C. 9, 4 D. 8, 5 16、表达式:10!=9的值是()。 A. true B. 非零值 C. 0 D. 1 17、若有说明: int i,j=7, *p=&i;, 则与i=j;等价的语句是()。 A. i= *p; B. *p=*&j; C. i=&j; D. i=* *p; 1、B 2、C 3、D 4、C 5、C 6、D 7、C 8、D 9、C 10、D 11、D 12、D 13、B 14、B 15、A 16、D 17、B 18、B 19、C 20、D 选择题(三) 1.设int x=1,y=1;表达式(!x++ || y--)的值是_________ A.0 B.1 C.2 D.-1 2.main( ) { int n; (n=6*4,n+6),n*2; printf(“n=%d\n”,n); }此程序的输出结果是______________. A.30 B. 24 C. 60 D. 48 3.若有如下定义,则__________是对数组元素的正确的引用。 int a[10] , *p ; p=a ; p=a ; p=a ; p=a ; A. *&a[10] B. a[11] C. *(p+10) D. *p 4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________ A. 0 B. 4 C. - 4 D. 2 5.以下不能正确定义二维数组的语句是___________ A . int a[2][2]={{1},{2}}; B. int a[][2]={1,2,3,4}; C. int a[2][2]={{1},2,3}; D. int a[2][]={{1,2},{3,4}}; 6.程序段的功能是将变量u 、s中的最大值赋给变量t 。 A. if(u>s) t=u;t=s; B. t=u; if(t) t=s; C. if(u>s) t=s;else t=u; D . t=s; if(u ) t=u; 7.下列程序段的输出结果是。 void main() { int k; for (k=1;k<5;k++) { if(k%2!=0) printf("#"); else printf(“*”);}} A. #*#* B . *#*# C. ## D. 以上都不对 8.设变量定义为int a[3]={1,4,7}; *p=&a[2]; 则*p的值是(35)。 A. &a[2] B. 4 C. 7 D. 1 9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。 A.a>=0||b>=0)&&(a<0 ||b<0)B.(a>=0 && b>=0)&&(a<0 && b<0) C.(a+b>0) &&(a+b<=0)D.a*b>0 10.C语言中,合法的字符型常数是_________。 A.…A?B.“A”C.65 D.A 11.设有数组定义:cha r array[]=”China”;则数组所占的空间是________。 A.4个字节B.5个字节C.6个字节D.7个字节 12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。 A.?a?<=c<=?z?B.(c>=?a?) || (c<=?z?) C.(…a?<=c)and(…z?>=c)D.(c>=?a?) && (c<=?z?) 13.设有定义:long x=-123456L;则以下能够正确输出变量x值的语句是_______。 A.printf(“x=%d\n”,x);B.printf(“x=%ld\n”,x); C.printf(“x=%8dl\n”,x);D.printf(“x=%LD\n”,x); 14.下列关于指针定义的描述,___________是错误的。 A.指针是一种变量,该变量用来存放某个变量的地址值的。 B.指针变量的类型与它所指向的变量类型一致。C.指针变量的命名规则与标识符相同。 D.在定义指针时,标识符前的“*”号表示后面的指针变量所指向的内容。 15.已知:int x; int y[10];下列______是合法的。 A.&x B.&(x+3) C.&5 D .&y 16.指出下面正确的输入语句__________。 A. scanf(“a=b=%d”,&a,&b) ; B. scanf(“%d,%d”,&a,&b) ; C. scanf(“%c”,c) ; D. scanf(“% f%d\n”,&f) ; 17.C语言中以追加方式打开一个文件应选择_______________参数。 A.“r”B.“w” C.“rb”D.“a” 18.Break语句的正确的用法是( )。 A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。 B. 在多重循环中,只能退出最靠近的那一层循环语句。 C. 跳出多重循环。 D. 只能修改控制变量。 19. 为表示关系x≥y≥z,应使用C语言表达式 A.(x>=y)&&(y>=z) B. (x>=y)AND(y>=z)C.(x>=y>=z) D. (x>=z)&(y>=z) 20.以下可以作为C语言合法整数的是________。 A.1010B B. 0368C.0Xffa D. x2a2 21.在函数中默认存储类型说明符的变量应该是________存储类型。 A.内部静态 B. 外部C.自动 D. 寄存器 1 B 2B 3D 4C 5D 6C 7A 8C 9D 10A 11C 12D 13B 14D 15A 16B 17D 18B 19A 20C 21C 选择题(四) 1、下列属于整型常量的是________。 A、12 B、12.0 C、-12.0 D、10E10 2、不属于字符型常量的是_________。 A.…A?B、'a' C、“A”D、'b' 3、下列表达式为关系表达式的为_________。(其中a为一整型变量) A.3+4*5B、a==10C、a>0?a:-a D、a=1 4、下面不正确的赋值语句是_____________。 A.a=a+1B、a= =b C、a+=b D、a=1 5、下列对数组定义不正确的语句是______________。 A.int m[5];B、char b[]={…h?,?e?}; C、int a[10]={1,6,8,4}; D、char p[]; 6、若有以下定义,则______和______是对数组元素的正确引用。 int a[5],*p=a A.*&a[6] B、*p+8 C、*(a+2) D、*p 7、执行下列语句后,a的值是______。 int a=8; a+=a-=a*a; A.-240 B、64 C、112 D、-112 8. 指出下面正确的输入语句()。 A. scanf(“a=b=%d”,&a,&b); B. scanf(“%d,%d”,&a,&b); C. scanf(“%c”,c); D. scanf(“%f\n”,&f); 9.下面的变量说明中正确的是____________。 A.int:a, b, c;B.int a; b; c;C.int a, b, c D.int a, b, c; 10. C语言用()表示逻辑“真”值。 A.True B. t 或y C. 非零整型值 D. 整型值0 11.若x=5,y=4 则y*=x+5; 时y的值为( ). A. 40 B. 20 C. 15 D. 30 14.Break语句的正确的用法是( )。 A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。 B. 在多重循环中,只能退出最靠近的那一层循环语句。 C. 跳出多重循环。 D. 只能修改控制变量。 15.两个指针变量的值相等时,表明两个指针变量是________________。 A. 占据同一内存单元。 B. 指向同一内存单元地址或者都为空。 C. 是两个空指针。 D. 都没有指向。 16.字符串指针变量中存入的是________________。 A.字符串的首地址。 B. 字符串C.第一个字符 D. 字符串变量。17.以_______________个是不正确的描述。 A. 不论在主函数还是自定义函数中,只要说明了变量,就可为其分配存贮单元。 B. 在定义函数时,必须指定形参的类型。 C. 形参和实参之间可以是值传递。 D. 数组名可以作为参数进行传递。 18 表达式“1?(0?3:2):(10?1:0)”的值为_____________________。 A.3 B. 2 C. 1 D. 0 19. 为表示关系x≥y≥z,应使用C语言表达式 A.(x>=y)&&(y>=z) B. (x>=y) AND (y>=z) C.(x>=y>=z) D. (x>=z)&(y>=z) 20.以下说法中正确的是_______________。 A.C语言程序总是从第一个定义的函数开始执行。 B.在C语言程序中,要调用的函数必须有main( ) 函数中定义。 C.C语言程序总是从main( ) 函数开始执行。 D.C语言程序中的main( ) 函数必须放在程序的开始部分。 21.设有数组定义:char array[]=”China”;则数组所占的存贮空间为__________。 A.4个字节 B. 5个字节 C. 6个字节 D. 7个字节 22.根据C语言的语法规则,下列________个是不合法标识符。 A.While B. Name C. Rern5 D. _exam 1、 A 2、 C 3、 B 4、 B 5、 D 6、C D 7、 D 8、 B 9、 D 10、C 11、A. 13、D 14、B 15、A. 16、A 17、A. 18、B 19、A 20、C 21、C 22、A 选择题(五) ⑴.在使用TurboC2.0环境编辑程序时,运行某程序使用的菜单项为() A.FILE B.RUN C.EDIT D.OPTION ⑵.下列语句不具有赋值功能的是() A.a*=b B.x=1C.a+b D.a++ ⑶.C语言程序中,当出现条件分支语句if~else时,else与()组成配对关系 A.同一复合语句内部的if B.在其之前任意的if C.在其之前未配对的最近的if D.首行位置相同的if ⑷.下列数组定义方式不正确的语句是() A.char x[5];B.char y[]={…h?,…e?,…l?,…l?,…o?}; C.int x[10]={12,13,14,15}; D.int y[]; ⑸. 若有如下定义和语句,且0<=i<5,下面()是对数值为3数组元素的引用 int a[]={1,2,3,4,5},*p,i; p=a; A.*(a+2) B.a[p-3] C.p+2 D.a+3 ⑹. 下列()表达式的值为真 a=5; b=8; c=10; d=0 A.a*2>8+2B.a&&d C.(a*2-c)||d D.a-b ⑺. 下列字符数组长度为5的是() A.char a[]={…h?,…a?,…b?,…c?,…d?}; B.char b[]={…h?,…a?,…b?,…c?,…d?,…\0?}; C.char c[10]={…h?,…a?,…b?,…c?,…d?}; D.char d[6]={…h?,…a?,…b?,…c?,…\0?} ⑻. 执行下列程序后,其结果为() int a[]={2,4,6,8,10,12}; *p; p=a; *(p+4)=2; printf(“%d,%d\n”,*p,*(p+4)); A.0,10 B.0,2 C.2,10 D.2,2 ⑼. 有下列结构体,对该结构体变量stu的成员项引用不正确的是() struct student { int m; float n; } stu ,*p; A.stu.n B.p->m C.(*p).m D.p.stu.n ⑽.下列函数中不能用于对文件进行输入输出操作的是() A.fscanf( )B.printf( )C.fgetc( )D. fputs( ) ⑴.B ⑵.C ⑶. C ⑷. C ⑸. A ⑹.D ⑺.A ⑻. D ⑼. D ⑽.B 选择题(六) 1.一个C语言程序是由()构成。 A.语句B.行号C.数据D.函数 2.下面标识符中正确的是()。 A.a#bc B.123ABC C.sime D.Y·M·D 3.在C语言中,存储一个整型、字符型、双精度实型变量所需的字节数是()。 A.2、1、8 B.4、1、4 C.4、1、4 D.2、2、8 4、为了避免嵌套的条件分支语句if--else中的else总是与()组成成对关系。 A. 缩排位置相同的 B. 在其之前未配对的 C. 在其之前未配对的最近的if D. 在同一行上的if 5.下列表达式的结果正确的是()。 int a,b,c,d; a=b=c=d=2; d=a+1==3?b=a+2:a+3 A.2 B.4 C.3 D.5 1.D 2. C 3. A 4. C 5. B 选择题7 1.一个C语言程序是由()构成。 A.语句B.行号C.数据D.函数 2.下面标识符中正确的是()。 A.d&ef B.6a C.z4x5c D.a3/b4 5.下列表达式的结果正确的是()。 int aa,bb,cc,dd; aa=bb=cc=dd=1; sp; aa=bb=cc=dd=1; sp; aa=bb=cc=dd=1; (aa+1==2)?bb=aa+2:aa+3 A.2 B.3 C. 1 D.5 6.设有int x=11 ;则表达式(x+1/3)的值是()。 A.3 B. 4 C. 11 D.12 7.设有字符串A=“He has 钱!”,则该字符串的长度为()。 A. 9 B. 10 C. 11 D. 8 8.有如下程序段,则正确的执行结果是() int m=3; while(m<=5) { printf(“%d ”,m-3); m++;} A.0 0 0 B.0 1 2 C.1 2 3 D.无结果 9.执行语句:printf("%d",(a=2)&&(b= -2);后,输出结果是()。 A.无输出B.结果不确定C.-1 D. 1 10.有如下定义类型语句,若从键盘输入数据,正确的输入语句是()。 int x; char y; char z[20]; A. scanf("%d%c%c",&x,&y,&z); B. scanf("%d%c%s",&x,&y,&z); C. scanf("%d%c%c",&x,&y,z); D. scanf("%d%c%s",&x,&y,z); 11. struct ex { int x ; float y; char z ;} example; 则下面的叙述中不正确的是()。 A. struct结构体类型的关键字 B. example是结构体类型名 C. x,y,z都是结构体成员名 D. struct ex是结构体类型 12.在C语言中对于实型数组,其每个数组元素的类型是( )。 A. 实型 B. 整型 C. 可以为任何类型 D. 不确定 13. 若已定义:int a[9],*p=a;不能表示a[1] 地址的表达式是( )。 A. p+1 B. a+1 C. a++ D. ++p 14. 在TC2.0环境中,对文件进行保存使用的命令是( )。 A. OPEN B. SAVE C. LOAD D. WRITE TO 15.在C++的类中,用于表示公共类型的关键字是( )。 A. class B. private C. protect D. public 1.D 2. C 3. A 4. C 5. B 6.C 7. B 8. B 9. D 10. D 11.B 12. A 13. C 14. B 15. D 选择题8 1. 下列不正确的转义字符是() A.\\B.\?C.074D.\0 2. 不是C语言提供的合法关键字是() A.switch B.cher C.case D.default 3.正确的标识符是() A.?a B.a=2C.a.3D.a_3 4.下列字符中属于键盘符号的是() A.\B.\n C.\t D.\b 5.下列数据中属于“字符串常量”的是() A.ABC B.“ABC”C.…ABC? D.…A? 6.char型常量在内存中存放的是() A.ASCII码B.BCD码C.内码值D.十进制代码值 7.设a为5,执行下列语句后,b的值不为2的是() A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:2 8.在以下一组运算符中,优先级最高的运算符是() A.<=B.=C.%D.&& 9.设整型变量i的值为3,则计算表达式i---i后表达式的值是() A.0 B.1 C. 2 D.表达式出错 10.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是() A.6 B.9 C.8 D.表达式出错 11.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是() A.1 B.2 C.2.0 D.2.5 12.设a=1,b=2,c=3,d=4,则表达式:a A.4 B.3 C.2 D.1