A. 4,4 B. 0,1 C. 1,4 D. 0,4
41. 以下叙述中正确的是 C ___ 。 A) break语句只能用于switch 语句中
B) continue语句的作用是:使程序的执行流程跳出包含它的所有循环 C) break语句只能用在循环体内和switch语句体内 D) 在循环体内使用break语句和continue 语句的作用相同
42. 若有说明int a[][3]={1,2,3,4,5,6,7}; 则a数组第一维的大小是 B ___ 。 A) 2 B) 3 C) 4
D) 无确定值
43. 有如下程序, 该程序段的输出结果是 B ___ 。 void main(void) { int n=5; while(n>2)
{
n--;
printf(“%d”,n); }
} A) 543 B)432 C)4321 D)5432
44.下列四种数组定义,合法的数组定义是 A ___ 。 A) char a[ ]=\
C) char a=\
45.若已定义x和y为实型变量,则表达式x=1, y=x+3/2的值是( D )。
A) 1
B) 2
C) 2.0 D) 2.5
46.下列语句中,正确的是 D ___ 。
A) #define PI=3.14159 B) include “stdio.h” C) define M 3 D) #define PI 3.14159 47.判断字符型变量 ch是否为大写英文字母的表达式为 B ___ 。
A) ‘A’<=ch<=‘Z’
B) ch>=‘A’&& ch<=‘Z’
C) ch>‘a’&& ch<=‘z’ D) ch>=‘A’|| ch<=‘Z’
48.设x为整型变量, p是指向整型的指针变量, 则下列赋值表达式正确的是 A ___。
A) p=&x B) p=x C) *p=&x D) *p=*x
49.设有定义:int k=3,*p=&k; 则表达式 *p的值是 ____D____。
A)1 B) 0 C) 2 D) 3
50. 要将字符串str2复制到字符串str1中,应使用的函数是 A ___ 。
A) strcpy(str1,str2); C) strcat(str1,str2); 51. 以下叙述错误的是 B D ___ 。
A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是函数
D) 在C程序中,注释说明只能位于一条语句的后面
52.函数调用语句func ((exp1,exp2),(exp3,exp4,exp5));中,实参的个数为 B___ 。
A) 1
B) 2
C) 4
D) 5
B) strcpy(str2,str1); D) strcmp(str2,str1);
53.下面字符数组初始化语句正确且与语句char c[]=\;等价的是 B_ ___ 。
A) char c[]={'s','t','r’,'i’,'n','g'}; B) char c[]={'s','t','r’,'i’,'n','g','\\0'}; C) char c[]={'string'}; D) char c[]='string';
54.运行下面程序段后,i的值是 C___ 。
int i=10; while(i--); printf(\,i); A) 0
B) 1
C) -1
D) 10
55.设 int i=4;则表达式(i= =2)?i:i-1的值为 C ___ 。
A) 1
B) 2
C) 3
D) 4
56.下面不正确的字符串常量是 A ___ 。
A) 'ABC'
B) \
C) \
D) \
57.若定义int d, c=1;则执行下面的语句后,d的值为 A ___ 。
switch(--c)
{ case 0:d=0;break; case 1: case 2:d=1; case 3:
case 4:d=2;break; default:d=3;}
A) 0 B) 1 C) 2 D) 3
58.以下能正确定义变量a,b和c并为它们赋值的语句是 D ___ 。
A) int a=5; b=5; c=5; C) a=5,b=5,c=5;
B) int a,b,c=5;
D) int a=5, b=5, c=5;
59.当定义一个结构体变量时,系统为它分配的内存空间是 D ___ 。
A) 结构中一个成员所需的内存容量 B) 结构中第一个成员所需的内存容量 C) 结构体中占内存容量最大者所需的容量 D) 结构中各成员所需内存容量之和 60.有下列程序段落:
int i,a[5]; for(i=0;i<5;i++)
scanf(“%d”,&a[i]);
若要使数组元素的值分别为1,2,3,4,5,应从键盘输入 _____B____。 A) 1,2,3,4,5↙ B) 1 2 3 4 5↙ C) 12345↙ D) 1;2;3;4;5↙
二、填空题
1.算法是 为解决一个问题而采取的方法和步骤 。
2.C语言的数据类型分为 基本数据类型 和构造类型两大类。 3.程序的三种控制结构是:顺序结构、 选择结构 和循环结构。
4.在循环语句中,break语句的作用是 提前结束循环语句的执行 。 5.C语言规定,函数返回值的类型是由 所定义函数的类型决定的。 6.若用数组名作为函数调用的实参,则传递给形参的是数组的 首地址。 7.按照作用范围可以把变量分为局部变量和 全局变量 。
8.在C语言中,实参和与其对应的形参 各占独立的存储单元 9. 某函数直接或间接调用自身称为该函数的 递归调用 。
10.表达式(int)((double)9/2)-9%2的值是____3____________。//后有详解
11.C语言规定,二维数组元素在内存中是按 行优先 的顺序存储的。
12.设x为int型变量,请写出一个关系表达式 x%7==0&&x%3==0 ,用以判断x同时为3和7的倍数时,关系表达式的值为真。
13.设y为int型变量,请写出描述”y是奇数”的表达式y%2!=0。
14.若定义 int b[7],*p=b; 则p+3表示 &b[3] 。 15.计算机能直接执行的程序是 机器语言程序 。 16.C语言主要是借助 函数 来实现程序模块化
17.C语言的函数由两部分构成,分别是 函数首部 和函数体。
18.C语言本身不提供输入输出语句,输入和输出操作是由 库函数 来完成的。
19.按照C语言规定的用户标识符命名规则,构成C标识符的字符只能是 字母,数字,下划线 三类字符。
20.C语言规定,标识符的第一个字符只能 字母开头 。
21.按照作用范围,可以把C语言的变量分为 全局变量 和局部变量。
22.编译时分配存储单元,作用范围结束后还占据原来存储单元的变量,是用关F键字 static 定义的。
23.C语言规定,二维数组元素在内存中是按照__ 先行后列 (或称为行优先)的顺序存储的。
24.若有定义int a[2][3]={{2},{3}};则值为3的数组元素是 a[1][0] 。 25.若有定义语句:int x=5;,则表达式x+=x-=x*x的值为 -40 。//后有详解
?b?b2?4ac26.将数学表达式写成C语言表达式,为 (-b+sqrt(b*b-4*a*c))/(2*a) 。
2a27.存放其他变量地址的变量称为 指针变量 。
28.若有说明int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[2];,则*(p+4)的值是 7 。//后有详解
29.如果函数先被调用,后被定义,应该在调用之前进行 原型声明 。 30.C语言中,按变量地址访问变量的方式称为 直接访问 。
31.C语言中,按照指针变量访问其他变量的方式称为 间接访问 。
32.函数调用语句:fun( ( exp1, exp2 ), ( exp1, exp2, exp3) ); 含有的实参个数是 2 。 //后有详解
33.若定义函数时未指定返回值的数据类型,则C语言规定:函数返回值的类型为 int 。
34.若要求从键盘读入含有空格字符的字符串,应使用函数 gets() 。 35.C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,称为 结构体类型 ,在其他一些高级语言中称为“记录”。
36.使几个不同的变量共享同一段内存的结构称为 共用体 结构。 37.若有联合数据类型定义如下: union { int a;