1、计算机二级 C 语言五套模拟卷及答案 模拟试题一一、 选择题(本大题 30 分,每小题 2 分)1.下列说法正确的是 。E) main 函数必须放在 C 程序的开头F) main 函数必须放在 C 程序的最后G) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从程序开头执行的H) main 函数可以放在 C 程序的中间部分,但在执行 C 程序时是从 main 函数开始的2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组: 。A)整型 实型 字符型 B)整型 数组 指针C)数组 结构体 共用体 D)指针 逻辑型 空类型3.若有说明语句:char c= 64 ; 则
2、变量 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 35.C 语言中,运算对象必须是整型数的运算符是 。A)% B) C)% 和 D)*6.能正确表示 x 的取值范围在0,100 和-10,-5内的表达式是 。A) (x=-5 )while(k+main( ) char c=A+10-5;printf(“c=%cn”,c); 2.#includemain( ) int a,b
3、,c;a=1;b=2;c=3;if(ab)if(ac) printf(“%dn”,a); else printf(“%dn”,b); printf(“overn”); 3. main( ) char a66, i, j;for(i=0;imain ( ) int i, j; int p,q; i=2; j=10; p= q= p=10; q=2;printf(i=%d, j=%dn , i, j); 6. struct stru int x; char c; ;main( ) struct stru a=10, x,*p= func (p); printf ( “%d,%c”, a.x, a.
4、c); func (struct stru *b)b-x=20; b-c=y; 五、编程题(本大题 24 分,第一题 7 分,第二题 8 分,第三题 9 分)1.把输入的整数(最多不超过 5 位)按输入顺序的反方向输出,例如,输入数是 12345,要求输出结果是 54321,编程实现此功能。2.编一程序,从键盘输入 10 个整数并保存到数组,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置。3.编写一个函数计算一个字符串的长度,输入输出在主函数内完成。 (使用指针)模拟试题二一、选择题(本大题 30 分,每小题 2 分)1.C 语言中不能用来表示整常数的进制是 。A)十进制 B
5、)十六进制 C)八进制 D)二进制2.C 语言规定标识符由 等字符组成。A)字母 数字 下划线 B)中划线 字母 数字)字母 数字 逗号 )字母 下划线 中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:(float)(a+b)/2+(int)x%(int)y 的值是 。A)2.500000 B)3.500000 C)4.500000 D)5.0000004.以下表达式: 2+a+i*f, 其中 i 为整型变量,f 为 float 型变量,则表达式的最终数据类型为 。A)int B)float C)char D)double 5.有如下语句:
6、printf(“%s,%5.3sn”,“COMPUTER”,“COMPUTER”);执行语句后的最终结果为 。A)COMPUTER ,CMP . B)COMPUTER, CMP.C)COMPU, CMP. D)COMPU, CMP .6.以下 if 语句中语法错误的是 。A)if (ab)printf( “%f”,a); B)if(ab)printf(“%f”,a);else printf(“%f”,b);C)if(ab)printf(“%f ”,a) D)if(ab)printf(“%f”,b);else printf(“%f”,b); else printf(“%f”,a);7.能表示整数
7、 x 符合下面两个条件的语句是 。(1)“能被 4 整除,但不能被 100 整除”.(2)能被 4 整除,又能被 400 整除.A)(x%4=0表达式 2;表达式 3) 语句其中表示循环条件的是 。A)表达式 1 B)表达式 2 C)表达式 3 D)语句9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为 。A)地址传递 B)单向值传递 C)双向值传递 D)随机传递10.将字符串 str2 连接到字符串 str1 中应使用 。A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strca
8、t(str2,str1)11.若有以下定义:int a10,*p=a; 则*(p+3)表示的是 。A)元素 a3的地址 B)元素 a3的值C)元素 a4的地址 D)元素 a4的值12.若有如下语句: int *p1,*p2; 则其中 int 所指的是 。A)p1 的类型 B)*p1 和*p2 的类型 C)p2 的类型 D)p1 和 p2 所能指向变量的类型13.若有如下说明:int a10=1,2,3,4,5,6,7,8,9,10;char b=a,d,e;则数值为 4 的表达式是 。A)a4 B)ad-b C)ad-b D)ae-b14.有如下程序段,在 Turbo C 环境下运行的结果为
9、。main( ) int i=2,p,k=1; int f(int a,int b)p=f(i,+k); int c;printf(“I=%d,p=%d”,k,p); if(ab) c=1; else if (a=b) c=0;else c=-1; return(c); A)1,0 B)2,0 C)2,-1 D)1,115.若 fp 是指向某文件的指针,且已读到此文件末尾,则库函数 feof(fp)的返回值是 。A) EOF B) 0 C) 非零值 D) NULL二、判断题(本大题 10 分,每小题 1 分)1.在每个 C 语言的程序中都必须并且只能有一个 main 函数。 ( )2.在 C
10、语言中,整型数据与字符型数据在任何情况下都可以通用。 ( )3.在 C 语言程序中,AHP 和 ahp 分别代表两个不同的标识符。 ( )4. 在 if 语句中,不可以没有 else 子句。 ( )5.C 语言规定,简单变量做实参时,与其对应的形参之间是单向的值传递。 ( )6. for 语句作为循环控制语句时,括号内的分号是用来分开表达式的,因此要根据需要加分号。 ( )7. 数组名也可作为函数参数使用,此时是地址传递。 ( )8. C 程序有三种结构化程序设计方法,分别嵌套结构、选择结构和循环结构。 ( )9.数组在定义时没有必要指定数组的长度,其长度可以在程序中根据元素个数再决定。 (
11、)10.在定义指针型变量时指定的基类型为该指针变量所能指向的变量类型。 ( )三、程序填空题(本大题 12 分,每小题 2 分)1.输入 3 个实数 a, b, c 要求按从大到小的顺序输出三数.main( ) float a,b,c,t;scanf(“%f,%f,%f”,if (a2);printf(“%dn“,j);5. # include main ( ) int p; p= p=2; p+; p=5; printf(%d, p); p; printf(%dn , p); 6. #include void f(int c) int a=0;static int b=0;a+;b+;printf(“%d: a=%d, b=%dn“, c, a, b);void main(void) int i;for (i=1; iy|xz)z=x; x=y; y=z;A)x=50, y=80, z=80 B)x=50, y=30, z=30C)x=30, y=50, z=80 D)x=80, y=30, z=5012.下面程序段的运行结果是: 。x=y=0; while(xaprintf(”%cn”,ch);