C. AA(int a; int b;) D. AA(int a, int)
7. 假定a为一个数组名,则下面存在错误的表达式为的( )。 A. a[i] B. *a++ C. *a D. *(a+1)
8. 假定有定义为“int a[10], x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为( )。
A. x=pa[3] B. x=*(a+3) C. x=a[3] D. x=*pa+3
9.char类型的长度为________个字节。
A. 1 B. 2 C. 3 D. 4
10. 向一个二进制文件中写入信息的函数为( )。
A. fgets() B. fputs() C. fread() D. fwrite()
一、单选题(每小题2分,共20分) 1. D 2. A 3. C 4. D 5. C 6. C 7. B 8. D 9. A 10. D
二、填空题(每小题2分,共26分)
1. C语言中的每条复合语句以________作为结束符。
2. 在#include命令中所包含的文件,可以是头文件,也可以是________文件。
3. 十进制数35对应的八进制数为________。
4. 假定x=5,则表达式2+x++的值为________。
5.增量表达式++y表示成赋值表达式为__________。
6.若x=5,y=10,则x>y的值为________。
7. 假定二维数组的定义为“int a[3][5];”,则该数组所含元素的个数为________。
8. 执行“typedef int ABC[10];”语句把ABC定义为具有10个整型元素的________类型。
9. strcat()函数用于________两个字符串。
10.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为________。
11. 若要把一个整型指针p转换为字符指针,则采用的强制转换表达式为________。
12. NULL是一个符号常量,通常作为空指针值,它对应的值为________。
13. 假定要动态分配一个类型为struct Worker的对象,并由r指针指向这个对象,则使用的表达式为 ________________ =malloc(sizeof(struct Worker))。
二、填空题(每小题2分,共26分)
1. }(或右花括号) 2. 程序 3. 43 4. 7 5. y=y+1 6. 0(假) 7. 15 8. 数组 9. 连接 10. 25 11. (char*)p 12. 0 13. struct Worker* r
三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1. #include
for(i=1;i<6;i++) s+=i*i; printf(“s=%d\\n”,s); }
2. #include
int i,a[N]={2,5,8,10,15,21}; for(i=0; i if(a[i]%5) printf(\ printf(\ } 3. #include unsigned int len; char* a[5]={\ len=strlen(a[0]); for(i=1; i<5; i++) if(strlen(a[i])>len) len=strlen(a[i]); printf(\ } 4. #include int a,b; for(a=2,b=3; b<20;) { printf(\ a=a+b; b=a+b; } printf(\ } 5. #include void LE(int* a, int* b) { int x=*a; *a=*b; *b=x; } void main() { int x=15, y=26; printf(\ LE(&x,&y); printf(\ } 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 评分标准:根据答案正确程度酌情给分。 1. s=55 2. 2 8 21 3. 10 4. 2 3 5 8 13 21 5. 15 26 26 15 一、单选题(每小题2分,共20分) 1. 由C语言源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. c C. exe D. obj 2.设x和y均为逻辑值,则x || y为假的条件是( )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 3. 枚举类型中的每个枚举常量的值都是一个( )。 A. 整数 B. 浮点数 C. 字符 D. 记录 4. 循环语句“for(i=0; i<=n; i++) S;”中循环体S被执行的次数为( )。 A. 1 B. n-1 C. n D. n+1 5. 假定有定义为“int a[4][5]={{1,3,5},{2,8}};”,则a[1][1]的值为( )。 A. 3 B. 5 C. 2 D. 8 6. 在下面的选项中,不能作为函数的返回类型的是( )。 A. void B. int C. new D. long 7. 假定x的值为5,y的值为6,则表达式x++*--y的值为( )。 A. 25 B. 30 C. 36 D. 42 8. 用calloc函数创建具有10个整型元素的动态存储空间正确调用是( )。 A. calloc(10,sizeof(char)) B. calloc(10) C. calloc(10,sizeof(int)) D. calloc(20, sizeof(int)) 9. 假定有定义“int b[10], *pb;”,则不正确的赋值为( )。 A. pb=b B. pb=b[5] C. pb=b+2 D. pb=&b[0] 10. 标准输入设备的文件流标识符是( )。 A. stderr B. stdin C. stdout D. stdio 一、单选题(每小题2分,共20分) 1. D 2. C 3. A 4. D 5. D 6. C 7. A 8. C 9. B 10. B 二、填空题(每小题2分,共26分) 1.执行“printf(\”语句后得到的输出结果为________。 2.short int类型的长度为________。 3. 用类型关键字表示十进制常数3.26f的类型为________。 4. 假定y=10,则表达式++y*3的值为________。 5. 逻辑表达式(x==0 && y>5)的相反表达式为________。 6.若x=5,y=10,则x!=y的逻辑值为________。 7. 假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为________。 8. 使用“typedef char BB[10][50];”语句定义________为含有10行50列的二维字符数组类型。 9. 字符串\数据\的长度为________。 10.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为________。 11. 假定一个数据对象为int*类型,则指向该对象的指针类型为_______。 12.假定一个结构类型的定义为 “struct A{int a,b; A* c;};”,则该类型的长度为________。 13. 假定要访问一个结构对象x中的数据成员a,则表示方式为____________。 二、填空题(每小题2分,共26分) 1. C 2. 2 3. float 4. 33 5. (x!=0 || y<=5) 或:(x || y<=5) 6. 1 7. 60 8. BB 9. 11 10. 46 11. int** 19. 12 13. x.a 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1. #include printf(\ } 2. #include int a[9]={36,25,48,24,55,40,18,66,20}; int i, b1, b2;