|
一、单选题(共 35 道试题,共 70 分。)V 1. 若有以下说明和语句: struct student {int age; int num; }std,* p; p=&std; 则以下对结构体变量std中成员age的引用方式不正确的是( )
A. std.age
B. p->age
C. (*p).age
D. *p.age
满分:2 分
2. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( )
A. D
B. 68
C. 不确定的值
D. C
满分:2 分
3. 下列说法不正确的是( )
A. 形参是局部变量
B. 主函数中定义的变量在整个文件都有效
C. 可以在一个函数的复合语句中定义变量
D. 不同函数可以使用相同变量名
满分:2 分
4. 若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为( )
A. *(a[i]+j)
B. (a+i)
C. *(a+j)
D. a[i]+j
满分:2 分
5. 设有程序段 int k=10; while (k=0) k= k-1; 则下面描述中正确的是( )
A. while循环执行10次
B. 循环是无限循环
C. 循环体语句一次也不执行
D. 循环体语句执行一次
满分:2 分
6. x,i,j和k都是int型变量,则执行下面表达式后x的值为( )(i=4,j=16,k=32)
A. 4
B. 16
C. 32
D. 52
满分:2 分
7. 一个C程序的执行是从( )
A. 本程序的main函数开始,到main函数结束
B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C. 本程序的main函数开始,到本程序文件的最后一个函数结束
D. 本程序文件的第一个函数开始,到本程序main函数结束
满分:2 分
8. 以下不正确的说法为( )
A. 在不同函数中可以使用相同名字的变量
B. 形式参数是局部变量
C. 在函数内定义的变量只在本函数范围内有效
D. 在函数内的复合语句中定义的变量在本函数范围内有效
满分:2 分
9. 以下不正确的叙述是( )
A. 在C程序中,逗号运算符的优先级最低
B. 在C程序中,APH和aph是两个不同的变量
C. 若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变
D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
满分:2 分
10. 根据下面的定义,能印出字母m的语句是( )根据下面的定义,能印出字母M的语句是( ) struct person{char name[9];int age;}; struct person class[10]={“john”,17, “paul”,19, “mary”,18, “adam”,16};
A. printf(“%c\n”,class[3].name);
B. printf(“%c\n”,class[3].name[1]);
C. printf(“%c\n”,class[2].name[1]);
D. printf(“%c\n”,clsaa[2].name[0]);
满分:2 分
11. 若有说明: char *language[ ]={"F0RTRAN","BASIC","PASCAL", "JAVA","C"};则language[2]的值是( )
A. 一个字符
B. 一个地址
C. 一个字符串
D. 一个不定值
满分:2 分
12. 若i为整型变量,则以下循环执行次数是( ): for (i=2;i==0;) printf("%d",i-- );
A. 无限次
B. 0次
C. 1 次
D. 2次
满分:2 分
13. 下面四个选项中,均是C语言关键字的选项是( )
A. auto、enum、include
B. switch、typedef、continue
C. signed、union、scanf
D. if、 0xe、0x
满分:2 分
14. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为( )
A. 地址传递
B. 单向值传递
C. 由实参传给形参,再由形参传回给实参
D. 由用户指定传递方式
满分:2 分
15. 请阅读以下程序: main() {int a=5,b=0,c=0; if(a=b+c) printf("***\n "); e1se printf("$$$\n"); 则以上程序( )
A. 有语法错不能通过编译
B. 可以通过编译但不能通过连接
C. 输出***
D. 输出$$$
满分:2 分
16. 不能把字符串: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!";
满分:2 分
17. 以下能对二维数组a进行正确初始化的语句是( )
A. int a[2][]={{1,0,1},{5,2,3}};
B. int a[][3]={{1,2,3},{4,5,6}};
C. int a[2][4]={{1,2,3},{4,5},{6}};
D. int a[][3]={{1,0,1},{},{1,1}};
满分:2 分
18. 假定ptr1和ptr2分别是指向某个字符串的指针,则在下列选项中非法的语句中是( )
A. if(ptr1==ptr2) printf("yes.");
B. *ptr1=48+(ptr1-ptr2);
C. *(ptr1+=2)=*ptr2;
D. *(ptr1-1+ptr2)=getchar();
满分:2 分
19. 若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为( )
A. 7
B. 8
C. 9
D. 10
满分:2 分
20. 变量的指针,其含义是指该变量的 ( )
A. 值
B. 地址
C. 名
D. 一个标志
满分:2 分
21. 以下正确的说法是( ) 如果在一个函数中的复合语句中定义了一个变量,则该变量
A. 只在该复合语句中有效
B. 在该函数中有效
C. 在本程序范围内均有效
D. 为非法变量
满分:2 分
22. 已知函数的调用形式:fread(buffer,size,count,fp),其中buffer代表的是( )
A. 一个整型变量,代表要读入的数据项总数
B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址
D. 一个存储区,存放要读的数据项
满分:2 分
23. 下面程序段的循环次数是( ) int k=2; while(k==0) printf(″%d″,k); k--; printf(″\n″);
A. 0次
B. 1次
C. 2次
D. 无限次
满分:2 分
24. 以下描述中正确的是( )
A. 由于do~while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B. do~while循环由do开始,用while结束,在while(表达式) 后面不能写分号
C. 在do~while循环体中,一定要有能使while后表达式值 变为零("假")的操作
D. do~while循环中,根据情况可以省略while
满分:2 分
25. 为了避免在嵌套的条件语句if - else中产生二义性,C语言规定else子句总是与( )配对
A. 缩排位置相同的if
B. 其之前最近的if
C. 之后最近的if
D. 同一行上的if
满分:2 分
26. C语言提供的预处理功能包括条件编译,其基本形式为: #XXX标识符 程序段1 #else 程序段2 #endif 这里XXX可以是( )
A. define或include
B. ifdef或include
C. ifdef或ifndef或define
D. ifdef或ifndef或if
满分:2 分
27. 以下不能对二维数组a进行正确初始化的语句是( )
A. int a[2][3]={0};
B. int a[][3」={{1,2},{0}};
C. int a[2][4]={{1,2},{3,4},{5,6}};
D. int a[][3]={1,2,3,4,5,6};
满分:2 分
28. C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是( )
A. 地址传递
B. 值传递
C. 有实参传给形参,再由形参传给实参
D. 由用户指定传递方式
满分:2 分
29. 下面程序段,说法正确的为( ) for (t=1; t<=100;t++) {scanf("%d",&x); if(x<0) continue; printf("%3d",x);}
A. 当x<0时整个循环结束
B. x>=0时什么也不输出
C. printf函数永远也不执行
D. 最多允许输出100个非负整数
满分:2 分
30. 设有程序段 t=0; while(printf("*")) {t++; if(t<3) break; } 下面描述正确的是( )
A. 其中循环控制表达式与0等价
B. 其中循环控制表达式与'0'等价
C. 其中循环控制表达式是不合法的
D. 以上说法部不对
满分:2 分
31. 有如下定义:char *s1="AbCdE",*s2="aBcDe"; 则表达式strcmp(s1+1,s2+1)的值是( )
A. 零
B. 负数
C. 正数
D. 非零值,无法肯定符号
满分:2 分
32. 标准库函数fgets(s,n,f)的功能是( )
A. 从文件f中读取长度为n的字符串存入s中
B. 从文件f中读取长度小于n的字符串存入s中
C. 从文件f中读取n个字符串存入s中
D. 从文件f中读取长度为n-1的字符串存入s中
满分:2 分
33. 判断字符串a和b是否相等,应当使用( )
A. if(a= =b)
B. if(a=b)
C. if(strcpy(a,b))
D. if(!strcmp(a,b))
满分:2 分
34. 若有说明:char *language[]={"FORTRAN","BASIC","PASCAL","JAVA","C"}; 则表达式 *language[1]>*language[3] 比较的是( )
A. 字符F和字符P
B. 字符串BAS1C和字符串JAVA
C. 字符B和字符J
D. 字符串FORTRAN和字符串PASCAL
满分:2 分
35. 当a=1,b=3,c=5,d=4 ,执行完下面一段程序后x 的值是 ( ) if(a<b) if(c<d) x=1; else if(a<c) if(b<d) x=2; else x= 3; else x=6; else x=7;
A. 1
B. 2
C. 3
D. 6
满分:2 分
二、多选题(共 5 道试题,共 10 分。)V 1. 以下哪些是关于指针数组的正确描述( )
A. int (*a)[4];
B. int *a[4];
C. 指针数组每个元素都是指针变量
D. 若int a[4][4]; int *b[]={a[0],a[1],a[2],a[3]}; 则b是指针数组
E. 指针数组与指向数组的指针是等价的
满分:2 分
2. 在函数调用过程中,下列说法正确的是( )
A. 形式参数和实在参数各占一个独立的存储单元
B. 形式参数和实在参数存储空间都是在函数调用时分配的
C. )在函数的执行过程中,形参变量值的改变不会影响实参值的改变
D. 函数调用结束时,临时存储区被撤消
E. 在函数调用过程中,实在参数与形式参数在个数、类型上必须匹配
满分:2 分
3. 以下程序正确计算p=n! (n>=0)的是( )
A. for(p=1.0,k=1;k<=n;) p*=k++;
B. p=1.0;k=0;while(k<n) p*=++k;
C. p=1.0;k=1;do{++k;p*=k;} while(k<=n);
D. p=1.0;for(k=n;k>=1;k--) p*=k--;
满分:2 分
4. 在下面C语言的函数说明语句中,正确的是( )
A. int fun(int , int);
B. int fun(int x,y);
C. int fun(x,y);
D. int fun(int x; int y);
E. int fun(int x,int y);
满分:2 分
5. C语言规定,如下说法是正确的( )
A. 不能将结构作为整体来进行存取;
B. 结构是若干变量的集合,这些变量的类型可以相同;
C. 共用体(联合)允许不同数据类型的数据使用共同的存储区域;
D. 不能用&来取结构的地址;
E. 位段是一种特殊的结构成员。位段的类型可以是char、int、float、double等。
满分:2 分
三、判断题(共 10 道试题,共 20 分。)V 1. 结构体中的成员也可以是一个结构体变量。
A. 错误
B. 正确
满分:2 分
2. C程序是由函数构成的,每一个函数完成相对独立的功能。
A. 错误
B. 正确
满分:2 分
3. 结构体类型的数据是由不同类型的数据组合而成的。
A. 错误
B. 正确
满分:2 分
4. 宏替换就是字符替换,不能进行任何计算。
A. 错误
B. 正确
满分:2 分
5. C语言把文件看作是一个字符的序列。
A. 错误
B. 正确
满分:2 分
6. 在任何情况下,对二维数组的初始化都可以省略第一维的大小。
A. 错误
B. 正确
满分:2 分
7. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员。
A. 错误
B. 正确
满分:2 分
8. 在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是地址量。
A. 错误
B. 正确
满分:2 分
9. 以数组名作函数参数时,实参数组与形参数组都不必定义长度,因此实参与形参的结合方式是地址结合,与数组长度无关。
A. 错误
B. 正确
满分:2 分
10. continue语句用在循环体中,可使整个循环不结束。
A. 错误
B. 正确
满分:2 分 |
|