一、单选题(共 20 道试题,共 100 分。)V
1. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( )。
A. 该变量只在该复合语句中有效
B. 该变量在该函数中有效
C. 该变量在本程序范围内有效
D. 该变量为非法变量
满分:5 分
2. 若有说明:int a[10];则对数组元素的正确引用是( )。
A. a[10]
B. a[3,5]
C. a(5)
D. a[10-10]
满分:5 分
3. 以下正确的描述是( )。
A. 定义函数时,形参的类型说明可以放在函数体内
B. return后面的值不能为表达式
C. 如果函数值的类型与返回值类型不一致,以函数值类型为准
D. 如果实参与形参的类型不一致,以实参类型为准
满分:5 分
4. 执行以下程序段后,y的值是( )。 int a[ ]={1, 3, 5, 7, 9} int x=0, y=1, *ptr; ptr=&a[1]; while (!x) { y+=*(ptr+x); x++; }
A. 1
B. 2
C. 4
D. 24
满分:5 分
5. 以下正确的函数形式是( )。
A. double fun1(int x, int y) { z=x+y; return z; }
B. fun1(int x, y){ int z;return z; }
C. fun1(x, y) { int x, y; double z;z=x+y;return z; }
D. double fun1(int x, int y){ double z;z=x+y; return z; }"
满分:5 分
6. 以下正确的说法是( )。
A. 实参和与其对应的形参各占用独立的存储单元
B. 实参和与其对应的形参共占用一个存储单元
C. 只有当实参和与其对应的形参同名时才共用存储单元
D. 形参是虚拟的,不占用存储单元
满分:5 分
7. 以下程序段的执行结果是( )。 int x=-3; do { printf("%d\n", x++); }while(!x);
A. -3
B. -2
C. -1
D. 陷入死循环
满分:5 分
8. 下面程序段的运行结果是( )。 char str[10]="output";printf("\"%s\"\n", str);
A. output
B. "output"
C. \"output\"
D. 编译出错
满分:5 分
9. 设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是( )。 for (y=100; x!=y; ++x,y++) printf("****\n");
A. 循环体只执行一次
B. 是无限循环
C. 循环体一次都不执行
D. for语句中存在语法错误
满分:5 分
10. 当定义一个结构体变量时系统分配给它的内存是( )。
A. 结构中第一个成员所需的内存量
B. 结构中最后一个成员所需的内存量
C. 结构体成员中占内存量最大者所需的容量
D. 结构体中各成员所需内存量的总和
满分:5 分
11. 以下能对一维数组a进行正确初始化的语句是( )。
A. int a[10]=(0,0,0,0,0);
B. int a[10]={ };
C. int a[]={0};
D. int a[10]={10*1};
满分:5 分
12. 有两个字符数组a、b,则以下正确的输入语句是( )。
A. gets(a,b);
B. scanf("%s%s",a,b);
C. scanf("%s%s",&a,&b);
D. gets("a"); gets("b");"
满分:5 分
13. 若有说明:int a[3][4]={0};则下面正确的叙述是( )。
A. 只有数组元素a[0][0]可得到初值0
B. 此说明语句不正确
C. 数组a中各元素都可得到初值,但其值不一定为0
D. 数组a中每个元素均可得到初值0
满分:5 分
14. 下面程序的运行结果是( )。 char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]);
A. 输出空格
B. \0
C. e
D. f
满分:5 分
15. 设有定义:int a=1, *p=&a; float b=2.0; char c='A'; ,以下不合法的运算是( )。
A. p++;
B. a--;
C. b++;
D. c--;
满分:5 分
16. 若有说明:int a[3][4];则对a数组元素的正确引用是( )。
A. a[2][4]