C语言复习题7

更新时间:2023-12-17 05:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《C语言程序设计》模拟试卷

(考试时间120分钟)

一、选择题(每题2分,共30分) 1、# include 的结果是______ void main ( )

{ 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);

}

3、#include int x1=30,x2=40; main()

{int x3=10,x4=20; sub(x3,x4); sub(x2,x1);

printf(“%d,%d,%d,%d\\n”,x3,x4,x1,x2); }

sub(int x,int y) {x1=x;x=y;y=x1;}

五、编程题:(共2小题,共25分)

1、编程打印如下的杨辉三角形(要求打印出10行):(15分) 1

1 2 1

1 3 3 1 1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

2、猴子吃桃问题,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘多少桃子。(10分)

参考答案

一、选择题

1、D 2、D 3、A 4、B 5、D 6、D 7、C 8、A 9、B 10、D 11、B 12、B 13、A 14、A 15、C

二、填空题

1、 if语句、switc语句 2、 下标、方括句 3、 数组在内存的首地址 4、 结构变量 5、 指针 三、程序填空题

1、(1)n%m==0; (2)return 1;

2、(3)*max=I (4) *min=I (5)a,7,&max,&min

四、看程序写结果

1、 x=2 2、 i=8 3、 10,20,40,40 五、编程题 1、 #define N 11 Main()

{int i,j,a[N[N]; For(i=1;i

For(i=3;i

a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=1;i<=N;i++) {for(j=1;j<=i;j++)

Printf(“m”,a[i][j]); Printf(“\\n”);

}

Printf(“\\n”); }

2、 main() {int day,x1,x2; day=9; x2=1;

while(day>0) {x1=(x2+1)*2; x2=x1; day--; }

Printf(“total=%d\\n”,x1); }

本文来源:https://www.bwwdw.com/article/pmf5.html

Top