《C语言程序设计》模拟试卷
(考试时间120分钟)
一、选择题(每题2分,共30分) 1、# include
{ int a[3][3]={1,2,3,4,5,6,7,8,9}; int s=0,i;
for (i=0;i<3;i++) s+=(*(a+i))[i]; printf(\ }
A)9 B)12 C)14 D)15 2、设有说明语句:char a= '\\123abc';则变量a __________
A) 包含7个字符 B) 包含6个字符 C) 包含5个字符 D) 包含4个字符
3、有以下程序段 int k=0
while(k=1)k++;
while 循环执行的次数是_____
A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次
4、在C语言中,_____。
A)函数定义可以嵌套,但函数调用不能嵌套 B)函数定义不可以嵌套,但函数调用可以嵌套 C)函数定义和调用均不能嵌套 D)函数定义和调用均可以嵌套 5、以下叙述正确的是________
A)do-while语句构成的循环不能用其它语句构成的循环代替。 B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。 D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
6、以下关于函数叙述中,正确的是 。
A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值 B.在函数体中至少必须有一个return 语句 C.在函数体中可以定义另一个函数 D.在函数体中可以调用函数自身
7、以下数组声明语句中正确的是 。
A.int a,a[n]; B.int a[ ]; C. int a[2][3]={{1},{2},{3}}; D.int a[ ][3]={{1},{2},{3}};
8、以下不能正确进行字符串赋初值的语句是________ A)char str[5]= \; B)char str[ ]= \; C)char *str=\; D)char str[5]={ 'g','o','o','d'};
9、以下关于switch语句和break语句的描述中,只有______是正确的。 A)在switch语句中必须使用break语句
B)在switch语句中,可以根据需要使用或不使用break语句 C)break语句只能用于switch语句中 D)break语句是switch语句的一部分
10、判断变量ch中的字符是否为数字字符,最简单的正确表达式是_______。 A)ch>=0&&ch<=9 B)’0’<=ch<=’9’ C)ch>=’0’||ch<=’9’ D)ch>=’0’&&ch<=’9’
11、若执行以下程序时从键盘上输入9,则输出结果是_______ A)11 B)10 C)9 D)8 main( )
{ int n; scanf(\,&n);
if(n++<10) printf(\,n); else printf(\,n--); }
12、若w=1,x=2,y=3,z=4;则条件表达式w>x?w:y A)4 B)3 C)2 D)1 13、以下程序的输出结果是_____ main( ) {int x=023; printf(\,--x); } A)18 B)22 C)23 D)19 14、下列4个函数中,________能实现交换变量值的功能。 A) void fun_a(int x,int y) fun_b(int *x,int *y) { int *p; { int *p; *p=x;x=y;y=*p; *x=*y;*y=*x; } } C) void fun_c(int *x,int *y) void fun_d(int x,int y) { *x=*x+*y; { int p; *y=*x-*y; p=x;x=y;y=p; *x=*x-*y; } } ) void D) B 15、以下所列的各函数首部中,正确的是_____ A) void play(var :integer,var b:integer) B) void play(int a,b) C) void play(int a,int b) D) Sub play(a as integer,b as integer) 二、填空题(每空1分,共10分) 1、选择结构语句有_______、________两种语句。 2、二维数组有两处_____,分别用一对_______号括起。 3、数组指针是指_________。 4、在访问一个结构元素前,你必须定义________。 5、链表是以结构类型表示链中元素,以______表示链的一种线性数据结构。 6、链表与数组相比,比较适合的操作包括______和_______。 7、C语言中的文件是由一个个的_____组成的,因此称之为流式文件。 三、程序填空题(每空4分,共20分) 1、判断n是否是素数,若是,则返加1,否则返回0 int prim(int n) { int m; for (m=2;m<=n/2;m++) if (1) return 0; (2) ; } 2、下述程序段是要实现在数组中查找最大元素和最小元素的下标, # include void find(int *a,int n,int *max,int *min) { int i; *max=*min=0; for(i=1;i if(a[i]>a[*max]) (3) ; else if(a[i] void main( ) { int a [ ]={5,8,7,6,2,7,3}; int max,min; find( (5) ); printf(\ } 四、看程序写结果(每题3分,共15分) 1、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是_________ if (a if (c if (b printf(“x=%d”,x); 2、main() {int i=1,s=3; Do{s+=i++; If(s%7==0)continue; Else ++i; }while(s<15); Printf(“i=%d\\n”,i);