C复习题及答案
1.以下选项中合法的变量名是( A )。
A._am7 B.4gp3 C.scanf D.B.H.Jack
2.若有说明语句int i,j;则计算表达式i=(j=3,j++,j=5,j+5)后i的值为(D )。
A.3 B.4 C.5 D.10
3.关于if后一对圆括号中的表达式,以下叙述中正确的是(C )。
A.只能用逻辑表达式B.只能用关系表达式
C.可用任意表达式D.可用逻辑表达式也可用关系表达式
4.设有定义语句:char c1=3,c2=3;,则以下表达式中值为0的是(A )。
A.c1^c2 B.c1&c2 C.c1|c2 D.~c2
5.调用函数时,基本类型变量作函数实参,它与对应的形参( A )。
A.各自占用独立的存储单元
B.共占用一个存储单元
C.同名时才能共用存储空间
D.不占用存储单元
6.若有如下结构体类型的定义和语句:D
struct student
{ char name[10];
char sex;
int age;
} std,*ps;ps=&std;
则下面对结构体成员的引用错误的是()。
A.std.sex B.ps->age
C.(*ps).age D.student.sex
7.以下关于文件包含的叙述中正确的是( B )。
A.用#include命令所包含的文件其后缀只能是.h
B.根据需要#include命令行可以出现在源程序任意行的起始位置
C.对有错误的被包含文件进行修改后,包含它的源文件不必重新编译
D.用#include命令行所包含的头文件可以是目标文件
8.若要打开A盘上user子目录下名为的文本文件,进行读写,下面符合此要求的函数调用是(C )。
A.fopen(“A:\”,”rb”)
B.fopen(“A:\”,”r”)
C.fopen(“A:\”,”r+”)
D.fopen(“A:\”,”w”)
9.以下叙述不正确的是(C .D)。
A.C程序的main函数可以没有参数。
B.C程序的main函数可以有参数。
C.C程序的main函数若有参数时,第一个参数的值最少是1。
D.C程序的main函数若有参数时,第一个参数的值一定要大于等于0。
10.以下关于数组的叙述中不正确的是(D )。
A. 数组的名称其实是数组在内存中的首地址。
B. 数组元素是按顺序存放在内存中。
C. 当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改。
D. 一个数组可以存储多种不同类型的变量。
1. C语言规定:函数返回值的类型是由__D________
A Return语句中的表达式类型规定的
B 调用该函数时的主调函数类型所决定的
C 调用该函数时系统临时决定的
D 在定义该函数时所指定的函数类型所决定的
2. 在宏定义#define PI
3.1415926中,用宏名PI代替一个___D___
A 常量
B 单精度数
C 双精度数
D 字符串
3. 若以下对fun函数的调用是正确的:x=fun(fun(a,b,c),(a+b,a+c),a+b+c); 则fun函数的形参个数为___A________。
A、3
B、4
C、 5
D、6
4. C语言用______C_______表示逻辑“真”值。
A.True B. t 或 y C. 非零整型值 D. 整型值0
5. 为了避免在嵌套的条件语句if—else中产生二义性,C语言规定:else子句总与_____B________配对。A.缩排位置相同的if B.其之前最近的if
C.其之后最近的if D.同一行上的if
6. 凡是函数中未指定存储类别的局部变量,其隐含的存储类别是_A____________。
A.auto B.static C.extern D.register
7. 若用数组名作为函数调用的实参,传递给形参的是_____A________。
A.数组的首地址 B.数组第一个元素的值
C.数组中全部元素的值 D .数组元素的个数
8.设有定义:char s[81];int i=0; 以下不能将一行(不超过 80 个字
符)带有空格的字符串正确读入的语句或语句组是(C)。
A.gets(s);
B.while((s[i++]=getchar())!='\n'); s[i]='\0';
C.scanf("%s",s);
D.do{scanf("%c",&s[i]);}while(s[i++]!='\n'); s[i]='\0';
9.以下说法正确的是________A_______
A.实参和与其对应的形参各自占用独立的存储单元
B.实参和与其对应的形参共同占用一个存储单元
C.只有当实参和与其对应的形参同名时才共同占用存储单元
D.形参是虚拟的,不占用存储单元
10.在位运算中,操作数每左移一位,其结果相当于________A_______
A.操作数乘2 B.操作数除2
C.操作数乘10 D.操作数除10
1. 定义了一维int型数组a[10]后,下面错误的引用是_B____
A. a[0]=1;
B. a[10]=2;
C. a[0]=5*2;
D. a[1]=a[2]*a[0];
2. 若有定义:int x[10], *p=x;,则*(p+5)表示__B____
A.数组元素x[5]的地址 B.数组元素x[5]的值
C. 数组元素x[6]的地址
D.数组元素x[6]的值
3. 以下关于switch语句和break语句的描述正确的是__D_________。
A.在switch语句中必须使用break语句
switch语句表示范围B.break语句只能用于switch语句体中
C.break语句只能用于循环语句中
D.在switch语句中可以使用break语句
4. 若程序中定义了以下函数 double myadd(double a,double b) { return (a+b) ;} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是____A________。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。