c语言综合练习题及答案 联系客服

发布时间 : 星期日 文章c语言综合练习题及答案更新完毕开始阅读

模拟试题一

一、

选择题(本大题30分,每小题2分) A) main函数必须放在C程序的开头 B) main函数必须放在C程序的最后

C) main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D) main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始

2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组: 。 A)整型 实型 字符型 B)整型 数组 指针

C)数组 结构体 共用体 D)指针 逻辑型 空类型 3.若有说明语句:char c= ?\\64? ; 则变量C包含: 。

A)1个字符 B)2个字符

C)3个字符 D)说明不合法,C值不确定 4.设有如下定义和执行语句,其输出结果为: 。 int a=3,b=3;

a = --b + 1; printf(“%d %d”,a,b);

A)3 2 B)4 2 C)2 2 D)2 3 5.C语言中,运算对象必须是整型数的运算符是 。 A)% B)\\ C)% 和 \\

A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100) C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)

D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) 7.程序段如下

int k=0;

while(k++<=2); printf(\则执行结果是last= 。

A)2 B)3 C)4 D)无结果 8.下面有关for循环的正确描述是 。

A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

1.下列说法正确的是 。

D)**

6.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是 。

9.若二维数组a有m列,则a[I][j]元素前的数组元素个数为: 。

A)j*m+i B)i*m+j C)i*m+j-2 D)i*m+j+1

10.C语言中变量的指针指的是: 。

A)变量类型 B)变量值 C)变量值 D)变量地址

11.设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为: 。

A)strcpy(str1,str2);

B)strcpy(str1, “China”); C)strcat(str1,“China”) D)strcat(“Beijing”,str2);

12.以下程序的运行结果是: 。

main( ) { int a=2, i ;

for(i=0;i<3;i++) printf(“M”,f(a) ) ; } f( int a)

{ int b=0,c=3;

b++; c++; return(a+b+c); }

A)7 10 13 B)7 7 7 C)7 9 11 D)7 8 9

13.在C语言程序中,若未在函数定义时说明函数类型,则函数默认的类型为: 。 A)void B)double C)int D)char

14.在说明一个结构体变量时系统分配给它的存储空间是 。

A) 该结构体中第一个成员所需存储空间 B) 该结构体中最后一个成员所需存储空间

C) 该结构体中占用最大存储空间的成员所需存储空间 D) 该结构体中所有成员所需存储空间的总和

15.使用fseek函数可以实现的操作是 。

A) 改变文件的位置指针的当前位置

B) 文件的顺序读写 C) 文件的随机读写 D) 以上都不对

二、判断题(本大题10分,每小题1分)

1、C程序可以由若干个源文件组成,因此最小的功能单位是源文件,最小编译单位的是函数。( )

2、C程序有三种结构化程序设计方法,分别顺序结构、选择结构和循环结构。( ) 3、在if语句中,if子句与else子句都可以单独使用,构成了if语句的两种缺省形式。( ) 4、for语句作为循环控制语句时,其括号内各个表达式及其后的分号都可缺省。( ) 5、C程序中函数不可以嵌套定义但可以嵌套调用。( ) 6、字符串可以用来给数组赋值,在C程序的执行语句中可以直接用字符串给数组名赋值。 ( )

7、数组名也可作为函数参数使用,此时数组名代表数组的起始地址。( ) 8、在函数内的复合语句中定义的变量在本函数范围内有效。( ) 9、声明一个结构体类型的一般形式为struct 结构体名 {成员表列};。( )

10、ANCI C规定了标准输入输出函数库,用fseek()函数来实现打开文件。( )

三、程序填空题(本大题12分,每小题2分)

1.下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。

main( ) { int m, n, s;

for(m=2;m<1000;m++) { ____(1)____; for(n=1;n<=m/2;n++) if(__(2)___) s+=n; if(__(3)___) printf(“%d\\n”, m); } } 2.. 用起泡法对十个数由大到小排序。 main( )

{ int a[11], i, j, t;

printf(“input 10 numbers: \\n”); for(i=1;i<11;i++) scanf(“%d”,&a[i]); printf(“\\n”);

for (j=1;j<=9;j++)

for(i=1; _(1)__; i++) if (__(2)___) {t=a[i]; a[i]=a[i+1]; __(3)__ ;} printf(“the sorted numbers: \\n”); for ( i=1; i<11; i++) printf(“%d”,a[i]); }

四、写出下面程序的执行结果(本大题24分,每小题4分) 1.#include main( )

{ char c=‘A’+‘10’-‘5’; printf(“c=%c\\n”,c); }

2.#include main( )

{ int a,b,c; a=1;b=2;c=3;

if(a>b)

if(a>c)

printf(“%d\\n”,a); else printf(“%d\\n”,b);

printf(“over\\n”); } 3. main( )

{ char a[6][6], i, j; for(i=0;i<6;i++) for(j=0;j<6;j++) { if ( i

a[i][j]= ?#?;

else if(i==j) a[i][j]= ? ?; else a[i][j]= ?*? ; } for(i=0;i<6;i++) { for(j=0;j<6;j++)

printf(“%c”,a[i][j]);

printf(“\\n”);} } 4.main( )

{ int i=2, x=5, j=7; fun (j,6);

printf(“i=%d; j=%d; x=%d\\n”, i, j, x ) ; } printf(“i=%d; j=%d; x=%d\\n”, i, j, x) ; 5. # include

main ( )

{ int i, j; int ﹡p,﹡q; i=2; j=10; p=&i; q=&j; ﹡p=10; ﹡q=2; printf(〞i=%d, j=%d\\n 〞, i, j); } 6. struct stru {int x; char c; };

main( )

{ struct stru a={10, ?x?},*p=&a; func (p); printf ( “%d,%c”, a.x, a.c); }

func (struct stru *b) {b->x=20; b->c=?y?; }

五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)

1.把输入的整数(最多不超过5位)按输入顺序的反方向输出,例如,输入数是12345,要求输出结果是54321,编程实现此功能。

2.编一程序,从键盘输入10个整数并保存到数组,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置。

3.编写一个函数计算一个字符串的长度,输入输出在主函数内完成。(使用指针)