|
一、单选题(共 30 道试题,共 60 分。)V 1. 以下运算符中优先级最低的是()。
A. &&
B. &
C. ||
D. |
满分:2 分
2. 要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()。
A. fopen("A.\user\abc.txt","r")
B. fopen("A.\\user\\abc.txt","r+")
C. fopen("A.\user\abc.txt","rb")
D. fopen("A.\\user\\abc.txt","w")
满分:2 分
3. 语句while(!E);中的表达式!E等价于()。
A. E==0
B. E!=1
C. E!=0
D. E==1
满分:2 分
4. 对以下说明语句int a[10]={6,7,8,9,10};的正确理解是()。
A. 将5个初值依次赋给a[1]至a[5]
B. 将5个初值依次赋给a[0]至a[4]
C. 将5个初值依次赋给a[6]至a[10]
D. 因为数组长度与初值的个数不相同,所以此语句不正确
满分:2 分
5. 以下叙述中不正确的是()。
A. 一个好的程序应该有详尽的注释
B. 在C程序中,赋值运算符的优先级最低
C. 在C程序中,j++;是一条赋值语句
D. C程序中的#include和#define均不是C语句
满分:2 分
6. static struct {int a1;float a2;char a3;}a[10]={1,3.5,'A'};说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存储方式,其中被初始化的下标变量是()。
A. a[1]
B. a[-1]
C. a[0]
D. a[10]
满分:2 分
7. 以下正确的说法是()。
A. 用户若需调用标准库函数,调用前必须重新定义
B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C. 系统根本不允许用户重新定义标准库函数
D. 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
满分:2 分
8. 下列四个选项中,均是C语言关键字的选项是()。
A. auto、enum、include
B. switch、typedef、continue
C. signed、union、scanf
D. if、struct、type
满分:2 分
9. 应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。
A. fclose()
B. close()
C. fread()
D. fwrite
满分:2 分
10. 已知函数的调用形式fread(buffer,size,count,fp);其中buffer代表的是()。
A. 一个整数,代表要读入的数据项总数
B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址
D. 一个存储区,存放要读的数据项
满分:2 分
11. char a[]="Thisisaprogram.";输出前5个字符的语句是()。
A. printf("%.5s",a);
B. puts(a);
C. printf("%s",a);
D. a[5*2]=0;puts(a);
满分:2 分
12. 执行以下程序段后,输出结果和a的值是()。Int a=10;printf("%d",a++);
A. 10和10
B. 10和11
C. 11和10
D. 11和11
满分:2 分
13. 以下程序的运行结果是()。main(){int i=1,sum=0;while(i<10)sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}
A. i=10,sum=9
B. i=9,sum=9
C. i=2,sum=1
D. 运行出现错误
满分:2 分
14. 以下选项中,与k=n++完全等价的表达式是()。
A. k=n,n=n+1
B. n=n+1,k=n
C. k=++n
D. k+=n+1
满分:2 分
15. 若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为()。
A. printf("%d",*(a+5));
B. printf("%d",p[5]);
C. printf("%d",*(p+5));
D. printf("%d",*p[5]);
满分:2 分
16. 以下语句中,不能实现回车换行的是()。
A. printf("\n");
B. putchar("\n");
C. fprintf(stdout,"\n");
D. fwrite("\n",1,1,stdout);
满分:2 分
17. 以下运算符中,优先级最高的运算符是()。
A. =
B. !=
C. *(乘号)
D. ()
满分:2 分
18. 下面有关for循环的正确描述是()。
A. for循环只能用于循环次数已经确定的情况
B. for循环是先执行循环循环体语句,后判断表达式
C. 在for循环中,不能用break语句跳出循环体
D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
满分:2 分
19. 用户定义的函数不可以调用的函数是()。
A. 非整型返回值的
B. 本文件外的
C. main函数
D. 本函数下面定义的
满分:2 分
20. C语言中,要求运算数必须是整型的运算符是()。
A. ^
B. %
C. !
D. >
满分:2 分
21. 变量的指针,其含义是指该变量的()。
A. 值
B. 地址
C. 名
D. 一个标志
满分:2 分
22. int a[10];合法的数组元素的最小下标值为()。
A. 10
B. 9
C. 1
D. 0
满分:2 分
23. 若k为int型变量,则以下程序段的执行结果是()。k=-8567;printf("|%06D|\n",k);
A. 格式描述符不合法,输出无定值
B. 输出为|%06D|
C. 输出为|0-8567|
D. 输出为|-8567|
满分:2 分
24. 以下叙述中正确的是()。
A. 在程序的一行上可以出现多个有效的预处理命令行
B. 使用带参的宏时,参数的类型应与宏定义时的一致
C. 宏替换不占用运行时间,只占编译时间
D. 在以下定义中CR是称为"宏名"的标识符#defineCR045
满分:2 分
25. 下列程序的输出结果为()。main(){int m=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf("%f\n",x);}
A. 27.000000
B. 27.500000
C. 28.000000
D. 28.500000
满分:2 分
26. 若x=2,y=3则x&y的结果是()。
A. 0
B. 2
C. 3
D. 5
满分:2 分
27. 凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
A. 自动(auto)
B. 静态(static)
C. 外部(extern)
D. 寄存器(register)
满分:2 分
28. 以下选项中合法的实型常数是()。
A. 5E2.0
B. E-3
C. .2E0
D. 1.3E
满分:2 分
29. 若有int a[][]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为()。
A. 非法,2
B. &a[1][0],2
C. &a[0][1],3
D. a[0][0],4
满分:2 分
30. fgets(str,n,fp)函数从文件中读入一个字符串,以下正确的叙述是()。
A. 字符串读入后不会自动加入'\0'
B. fp是file类型的指针
C. fgets函数将从文件中最多读入n-1个字符
D. fgets函数将从文件中最多读入n个字符
满分:2 分
二、多选题(共 10 道试题,共 20 分。)V 1. 以下叙述正确的是()。
A. C语言严格区分大小写英文字母
B. C语言用";"作为语句分隔符
C. C程序书写格式自由,一行内可以写几个语句,一个语句也可以写在几行上.
D. 可以使用/*…*/对C程序中的任何部分作注释
满分:2 分
2. 以下描述正确的是()。
A. 使用while和do-while循环时,循环变量初始话的操作应在循环体语句之前完成
B. while循环是先判断表达式,后执行循环语句
C. do-while和for循环均是先执行循环语句,后判断表达式
D. for,while和do-while循环中的循环体均可以由空语句构成
满分:2 分
3. 下列选项中是C语言合法标志符的有()。
A. good_morning
B. main
C. stdio.h
D. 8abc
满分:2 分
4. 以下不正确的叙述是
A. 在C程序中,每行只能写一条语句
B. 若a是实型变量,C程序中允许赋值A=10,因此实型变量中允许存放整型
C. 在C程序中,无论是整数还是实数,都能被准确无误地表示
D. 在C程序中,%是只能用于整数运算的运算符
满分:2 分
5. 下列对逻辑运算符两侧的运算对象的数据类型描述不正确的是()。
A. 只能是0或1
B. 只能是0或非0正数
C. 可以是整型或字符型数据
D. 可以是任何类型的数据
满分:2 分
6. 以下叙述中正确的是()。
A. 一个C源程序可由一个或多个函数组成
B. 一个C源程序必须包含一个main()函数
C. C源程序的基本组成单位是函数
D. 在C源程序中,注释说明只能位于一条语句的最后
满分:2 分
7. 以下可以定义为用户标识符的有()。
A. scanf
B. short
C. _3com_
D. int
满分:2 分
8. 以下叙述正确的是()。
A. 预处理命令行都必须以"#"开始
B. 在程序中凡是以"#"开始的语句行都是预处理命令行
C. C程序在执行过程中对预处理命令行进行处理
D. #defineABCD是正确的宏定义
满分:2 分
9. 以下选项中不合法的字符常量是()。
A. "B"
B. '\010'
C. 68
D. D
满分:2 分
10. 下列为c语言的关键字是()
A. if
B. struct
C. union
D. Int
满分:2 分
三、判断题(共 10 道试题,共 20 分。)V 1. 用数组名作为实参时,把实参数组的起始地址传递给形参数组,因此形参数组和实参数组占用同一段内存单元,改变形参数组的值,也就改变了实参数组的值。()
A. 错误
B. 正确
满分:2 分
2. 函数的实参可以传递给形参,形参也可以传递给实参。()
A. 错误
B. 正确
满分:2 分
3. C中的变量必须“先定义,后使用”,函数也不例外。()
A. 错误
B. 正确
满分:2 分
4. C语言中,函数的隐含存储类别是extern()
A. 错误
B. 正确
满分:2 分
5. 可以用typedef声明各种类型名,但不能用它来定义变量。()
A. 错误
B. 正确
满分:2 分
6. 格式字符%md中的m只能为正,不能为负。()
A. 错误
B. 正确
满分:2 分
7. 若有int x,y,z; x=y=z=1;则执行++x&&++y&&++z后,x,y,z的值分别为2,1,1。()
A. 错误
B. 正确
满分:2 分
8. 表达式 ’a’ 和 “a” 是不同的,前者长度为1,后者长度为2。()
A. 错误
B. 正确
满分:2 分
9. C中*&a是取变量a的地址。()
A. 错误
B. 正确
满分:2 分
10. continue语句可用于switch语句,也可用于for、while和do循环语句中。()
A. 错误
B. 正确
满分:2 分
|
|