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 ;则变量C包括: 。A)1个字符 B)2个字符 C)3个字符 D)阐明不合法,C值不
2、确定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)&(x=100)B)(x=-10)&(x=0)&(x=-10)&(x=0)&(x=100)D)(x=-5)&(x=100)7.程序段如下int k=0;while(k+=2); printf(last=%dn,k);则执行成果是last= 。A)2
3、B)3 C)4 D)无成果8.下面有关for循环对旳描述是 。A)for循环只能用于循环次数已经确定状况B)for循环是先执行循环体语句,后判断体现式C)在for循环中,不能用break语句跳出循环体D)for循环循环体语句中,可以包括多条语句,但必要用花括号括起来9.若二维数组a有m列,则aIj元素前数组元素个数为: 。A)j*m+i B)i*m+j C)i*m+j-113 D)i*m+j+110.C语言中变量指针指是: 。A)变量类型 B)变量值 C)变量值 D)变量地址11.设有两字符串“Beijing”、“China”分别存储在字符数组str110,str210中,下面语句中能把“Ch
4、ina”连接到“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;i3;i+) printf(“%4d”,f(a) ) ; f( int a) int b=0,c=3;b+; c+; return(a+b+c);A)7 10 13 B)7 7 7C)7 9 11 D)7 8 913.在C语言程序中,若未在函数定义时阐明函数类型,则函数默认类型为: 。 A
5、)void B)double C)int D)char14.在阐明一种构造体变量时系统分派给它存储空间是 。E)该构造体中第一种组员所需存储空间F)该构造体中最终一种组员所需存储空间G)该构造体中占用最大存储空间组员所需存储空间H)该构造体中所有组员所需存储空间总和15.使用fseek函数可以实现操作是 。E)变化文献位置指针目前位置F)文献次序读写G)文献随机读写H)以上都不对 二、判断题(本大题10分,每题1分)1、C程序可以由若干个源文献构成,因而最小功能单位是源文献,最小编译单位是函数。( )2、C程序有三种构造化程序设计措施,分别次序构造、选用构造和循环构造。( )3、在if语句中,
6、if子句与else子句都可以单独使用,构成了if语句两种缺省形式。( )4、for语句作为循环控制语句时,其括号内各个体现式及其后分号都可缺省。( )5、C程序中函数不可以嵌套定义但可以嵌套调用。( )6、字符串可以用来给数组赋值,在C程序执行语句中可以直接用字符串给数组名赋值。 ( )7、数组名也可作为函数参数使用,此时数组名代表数组起始地址。( )8、在函数内复合语句中定义变量在本函数范围内有效。( )9、申明一种构造体类型一般形式为struct 构造体名 组员表列;。( )10、ANCI C规定了原则输入输出函数库,用fseek()函数来实现打开文献。( )三、程序填空题(本大题12分,
7、每题2分)1.下面程序可求出11000自然数中所有完数(因子和等于该数自身数)请填空。main( ) int m,n,s;for(m=2;m1000;m+) _(1)_;for(n=1;n=m/2;n+)if(_(2)_) s+=n;if(_(3)_) printf(“%dn”,m); 2. 用起泡法对十个数由大到小排序。main( ) int a11,i,j,t; printf(“input 10 numbers:n”); for(i=1;i11;i+) scanf(“%d”,&ai); printf(“n”); for (j=1;j=9;j+)for(i=1; _(1)_;i+)if (_
8、(2)_)t=ai; ai=ai+1; _(3)_ ; printf(“the sorted numbers:n”); for ( i=1;i11;i+) printf(“%d”,ai);四、写出下面程序执行成果(本大题24分,每题4分)1.#include main( ) char c=A+10-5;printf(“c=%cn”,c); 2.#include main( ) int a,b,c; a=1;b=2;c=3;if(ab)if(ac) printf(“%dn”,a);else printf(“%dn”,b); printf(“overn”); 3. main( ) char a66
9、,i,j; for(i=0;i6;i+) for(j=0;j6;j+) if ( ij )aij= #;else if(i=j) aij= ;else aij= * ;for(i=0;i6;i+) for(j=0;j6;j+) printf(“%c”,aij); printf(“n”);4.main( ) int i=2,x=5,j=7; fun (j,6); printf(“i=%d;j=%d;x=%dn”,i,j,x ) ; printf(“i=%d;j=%d;x=%dn”,i,j,x) ;5. # include main ( ) int i,j; int p,q; i=2; j=10;
10、 p=&i; q=&j; 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=&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个整数并保留到
11、数组,规定找出最小数和它下标,然后把它和数组中最前面元素对换位置。3.编写一种函数计算一种字符串长度,输入输出在主函数内完毕。(使用指针) 模仿试题二一、选用题(本大题30分,每题2分)1.C语言中不能用来体现整常数进制是 。 A)十进制 B)十六进制 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
12、)4.500000 D)5.0000004.如下体现式: 2+a+i*f,其中i为整型变量,f为float型变量,则体现式最终数据类型为 。A)int B)float C)char D)double 5.有如下语句: 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(
13、“%f”,b);C)if(ab)printf(“%f”,a) D)if(ab)printf(“%f”,b);else printf(“%f”,b); else printf(“%f”,a);7.能体现整数x符合下面两个条件语句是 。(1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除.A)(x%4=0&x%100!=0)|x%400=0B)(x%4=0|x%100!=0)&x%400=0C)(x%4=0&x%400!=0)|x%100=0D)(x%100=0|x%4!=0)&x%400=08.循环语句中for语句,其一般形式如下:for(体现式1;体现式2;体现式3)
14、语句其中体现循环条件是 。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)strcat(str2,str1)11.若有如下定义:int a10,*p=a;则*(p+3)体现是 。A)元素a3地址 B)元素a3值C)元素a4地址 D)元素a4值12.若有如下语句: int *p1
15、,*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环境下运行成果为 。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;r
16、eturn(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语言中,整型数据与字符型数据在任何状况下都可以通用。( )3.在C语言程序中,AHP和ahp分别代表两个不一样标识符。( )4. 在if语句中,不可以没有else子句。( )5.C语言规定,简朴变量做实参时,与其对应形参之间是单向值传递。( )6. for语句作为循环控制语句时,括号内
17、分号是用来分开体现式,因而要根据需要加分号。( )7. 数组名也可作为函数参数使用,此时是地址传递。( )8. C程序有三种构造化程序设计措施,分别嵌套构造、选用构造和循环构造。( )9.数组在定义时没有必要指定数组长度,其长度可以在程序中根据元素个数再决定。( )10.在定义指针型变量时指定基类型为该指针变量所能指向变量类型。( )三、程序填空题(本大题12分,每题2分)1.输入3个实数 a,b,c规定按从大到小次序输出三数.main( ) float a,b,c,t; scanf(“%f,%f,%f”,&a,&b,&c); if (ab) t=a; (1) ;b=t; if( (2) )
18、t=a;a=c;c=t; if(bc) (3) b=c;c=t;printf(“%f,%f,%f”,a,b,c);2.打印如下杨辉三角形.(规定打印出10行) main( ) int a1010,i,j ; 1 for( i=0;i10;i+) 1 1 (4) (5) 1 2 1for( i=2;i10;i+ ) - 1 3 3 1 for(j=1;ji ;j+ ) 1 4 6 4 1 aij = (6) ; for(i=0;i10;i+) for( j=1;j=i;j+) printf(“%5d”,aij); printf(“n”); 四、写出下面程序执行成果(本大题24分,每题4分)1.m
19、ain( ) int a34=1,2,3,4,5,6,7,8,9,10,11,12,b43; int i,j; for (i=0;i3;i+ )for (j=0;j4;j+ ) bji=aij; for ( i=0;i4;i+ ) for ( j=0;j3;j+ ) printf( “%5d”,bij ); printf( “n” ); 2.main( ) int a21,i,j,n=0; for(i=2;i20;i+ )ai=i;for ( i=2;i10;i+ )if (ai=0) continue; for (j=i+1;j=20;j+) if (aj%ai=0) aj=0;for (
20、i=2;i=20;i+ ) if (ai!=0) printf(“%4d”,ai);n=n+1; if (n%4=0) printf(“n”);3. float fac(int n) float f ; if(n0)printf(“n2);printf(%dn,j);5. # include main ( ) int p; p=&i; 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
21、,b);void main(void) int i; for (i=1;i=3;i+) f( i );五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1.已知三角形三边长,试编程求三角形面积. 规定:三边长从键盘输入,要考虑数据输入与否对旳,能否构成三角形等状况.假设三边分别为:a,b,c,s=1/2 (a+b+c),area= s(s-a)(s-b)(s-c)2.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13, 试编程求数列前20项和.3. 输入10个学生成绩,分别用函数实现: (1)求平均成绩;(2)按分数高下进行排序并输出。 模仿试题三一、选用题(本大题
22、30分,每题2分)1.下列有关C程序说法中,对旳是: 。A)一种C程序中只能有一种主函数且位置任意;B)一种C程序中可有多种主函数且位置任意;C)一种C程序中只能有一种主函数且位置固定;D)一种C程序中可以没有主函数。2.如下论述中不对旳是: 。A)在C程序运算符中,逗号运算符优先级最低;B)C程序中,AHP和ahp代表两个不一样变量;C)C程序中,整数和实数在内存中存储形式相似;D)在C程序中,%是只能用于整数运算运算符.3.已知ch是字符型变量,下面不对旳赋值语句是: 。 A)ch=0 B)ch=a+bC)ch=7+9 D)ch=7+94.设有如下定义int x=10,y=5,z;则语句p
23、rintf(%dn,z=(x+=y,x/y);输出成果是 。A)1 B)0 C)4 D)35.设有如下定义:char ch=z,则执行下面语句后变量ch是值为: 。ch=(A=ch&chy|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(x15) y+,x+=+y; printf(“%d,%d”,y,x);A)20,7 B)6,12 C)20,8 D)8,20 13.若有语句 int *point ,a =45; poi
24、nt = &a; 下面均代表同一变量地址一组选项是: 。A)&a point *&a B)&*a &a *point C)point &point &a D) &a, &*point point 14.如下程序运行成果是: 。main( ) int a=2,i ; for(i=0;i3;i+) printf(“%4d”,f(a) ) ; f( int a) int b=0;static int c=3b+; c+; return(a+b+c);A)7 10 13 B)7 7 7C)7 9 11 D)7 8 915.若有如下定义: int a33=1,2,3,4,5,6,7,8,9,i ; 则下
25、列语句输出成果是: 。for (i=0;ia&chz) ((2));printf(”%cn”,ch); 2. 如下程序是求矩阵a ,b和,成果存入矩阵c中并按矩阵形式输出。请填空: main( ) int a34 = 7,5,-2,3 , 1,0,-3,4 , 6,8,0,2 ; int b34 = 5,-1,7,6 , -2,0,1,4 , 2,0,8,6 ; int i,j,c34; for ( i=0;i3;i+ )for ( j=0;j4;j+ ) cij = _(3)_ ; for ( i=0;i3;i+ ) for ( j=0;j4;j+ ) printf ( “%3d”,cij
26、) ; _(4)_ ; 3.如下程序使用递归法求n!,请填空:float fac( int n) float f;if(n0) printf(“n0” data error);f=-1; else if(n=0|n=1) f=1; else f= (5) ;return( f ); main( ) int n; float y;printf(“input a integer number”);scanf(“%d”,&n);y= (6);printf(“%d! = %15.0f”,n,y ); 四、写出下面程序执行成果(本大题24分,每题4分)1.main( ) float a=3.14,b=3
27、.14159; printf(“%f,%5.3fn”,a,b); 2.main( ) char a55,i,j; for(i=0;i5;i+)for(j=0;j5;j+)if(i=0 |i+j=4) aij=*;else aij= ; for(i=0;i5;i+)for(j=0;j5;j+) printf(%c,aij);printf(n); 3.main( ) int x,i ; for( i=1,x=1; i=10) break;if(x%2=1) x+=5;continue;x - = 3;printf(“%dn”,i ); 4.func( int x, int y) int z; z=
28、a+b;return(z);main( ) int a=6,b=7,c=8,r; r=func( ( a-,b+,a+b),c-) printf(“%d”,r) ;5.#include void increment(void);void main(void) increment(); increment();void increment(void) static int x = 8; x +; printf(x = %dn,x);6. #include void main(void) static char a=ABCDEFGH,b=abCDefGh;char *p1,*p2;int k;p1
29、=a;p2=b;for(k=0;k=7;k+) if (*(p1+k)=*(p2+k) printf(%c,*(p1+k); printf(n); 五编程题(共30分)1.有一函数,其函数关系如下,试编程求对应于每一自变量函数值。 x2 (x0) y = -0.5x+10 (0 x5?4:24.已知变量C1为字符型变量,下面不对旳赋值语句是: 。A)C1 = abc B)C1= 0C)C1 = 7+ 9 D)C1= 7 + 95.如下程序输出成果是: 。(注:体现空格)main( ) printf(“n*s1=%8s*”,“china”); printf(“n*s2=%-5s*”,“chi”) ; A)*s1=china * B)*s1=china * *s2=chi* *s2=chi *C)*s1= china* D)*s1= china* *s2= chi * *s2=chi *6.设a、b和c是int型变量,且a=2,b=4,c=6,则下面体现式中