计算机二级C语言五套模拟卷及答案.doc

上传人:s****u 文档编号:12810135 上传时间:2020-05-25 格式:DOC 页数:31 大小:123KB
返回 下载 相关 举报
计算机二级C语言五套模拟卷及答案.doc_第1页
第1页 / 共31页
计算机二级C语言五套模拟卷及答案.doc_第2页
第2页 / 共31页
计算机二级C语言五套模拟卷及答案.doc_第3页
第3页 / 共31页
点击查看更多>>
资源描述
计算机二级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值不确定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 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中,下面语句中能把“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;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)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语句中,if子句与else子句都可以单独使用,构成了if语句的两种缺省形式。( )4、for语句作为循环控制语句时,其括号内各个表达式及其后的分号都可缺省。( )5、C程序中函数不可以嵌套定义但可以嵌套调用。( )6、字符串可以用来给数组赋值,在C程序的执行语句中可以直接用字符串给数组名赋值。 ( )7、数组名也可作为函数参数使用,此时数组名代表数组的起始地址。( )8、在函数内的复合语句中定义的变量在本函数范围内有效。( )9、声明一个结构体类型的一般形式为struct 结构体名 成员表列;。( )10、ANCI C规定了标准输入输出函数库,用fseek()函数来实现打开文件。( )三、程序填空题(本大题12分,每小题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 (_(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, 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; 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个整数并保存到数组,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置。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)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(“%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) 语句其中表示循环条件的是 。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,*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; 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语言中,整型数据与字符型数据在任何情况下都可以通用。( )3.在C语言程序中,AHP和ahp分别代表两个不同的标识符。( )4. 在if语句中,不可以没有else子句。( )5.C语言规定,简单变量做实参时,与其对应的形参之间是单向的值传递。( )6. for语句作为循环控制语句时,括号内的分号是用来分开表达式的,因此要根据需要加分号。( )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) ) 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.main( ) 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 ( 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, 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)按分数高低进行排序并输出。 模拟试题三一、选择题(本大题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;则语句printf(%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; point = &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 ; 则下列语句的输出结果是: 。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 ) ; _(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.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=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=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,则下面表达式中值为0的是: 。A)a+ b B)a=bC)a|b+c&b-c D)!( (ay|xz) z=x; x=y; y=z;A)x=10, y=20, z=30 B)x=20, y=30, z=30C)x=20, y=30, z=10 D)x=20, y=30, z=208.下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是: 。A)char a1=C, , p, r, o, g, r, a, m B)char a210; strcpy(a2, “C program”);C)char a310; a3= “C program”;D)char a410= “C program”9.用scanf函数输入一个字符串到数组str中,下面正确的语句是: 。A)scanf(“%s”,&str); B)scanf(“%c”,&str10);C)scanf(“%s”, str) ; D)scanf(“%s”,str10);10.C语言规定,C程序的各函数之间 。A)允许嵌套调用,但不允许嵌套定义;B)不允许嵌套调用,但允许嵌套定义;C)不允许嵌套调用,也不允许嵌套定义;D)允许嵌套调用,也允许嵌套定义;。11.若有如下定义和语句: char s12= “a_book!”; printf(“%d”,strlen(s) );则输出结果是: 。A)12 B)10 C)7 D)612.下面程序的运行结果是: 。#include main( ) int y=10; do y-; while(-y) ; printf(“%dn”,y-); A)-1 B)1 C)8 D)013.下面函数调用语句中实参的个数为: 。func(exp1,exp2),(exp3,exp4,exp5)A) 1 B) 2 C) 4 D) 514.有如下语句 int a=10,b=20,*p1,*p2; p1=&a; p2=&b; 如图1所示;若实现如图2所示的存储结构,可选用的赋值语句是: 。p1 p2 p1 p2 a b a b 10 20 10 20 图1 图2A)*p1=*p2 B)p1=p2 C)p1=*p2 D)*p1=p215.以下对结构体类型变量的定义中不正确的是 。B)#define STUDENT struct student B) struct student STUDENT int num; int num; float age; float age; std1; std1;C) struct D) struct int num; int num; float age; float age; student; std1; struct student std1;二、判断题(本大题10分,每小题1分)-1.在每个C文件中都必须并且只能有一个main函数。( )2. 在C语言中,整型数据与实型数据在任何情况下都可以通用。( )3. 在C语言程序中,happy是正确的标识符。( )4.在if语句中,if子句与else子句都可以单独使用,构成了if语句的两种缺省形式。( )5. C语言规定,简单变量做实参时,与其对应的形参之间是双向的值传递。( )6.数组在定义时要求指定数组类型,数组名及数组长度,其中表示数组长度的表达式可以是任意类型的常量表达式。( )7.在发生函数调用时,主被调函数中的参数可以是简单变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传递。( )8.C语言的一个重要特点是能够直接处理物理地址,其指针类型数据就是用来存放变量地址的。( )9.字符串是C语言中一种基本数据类型,字符串总是以n作为结束标志。( )10.C程序的三种结构化程序设计方法分别顺序结构、选择结构和循环结构,由这三种结构组成的程序可以解决任何复杂的问题。( )三、程序填空题(本大题12分,每小题2分)1.下面程序的功能是利用函数调用求两整数的最大公约数和最小公倍数,请填空。 main( ) int a, b ,c,d; scanf(“%d, %d”, &a, &b ) ; c = gongyue( a, b ) ; (1) ; printf(“gongyue=%d,gongbei=%dn”, c,d ) ; gongyue( int num1, int num2 ) int temp, x, y ; if (_ (2) _) temp=num1; num1=num2 ; num2=temp ; x=num1 ; y=num2 ; while(_ (3) _) temp=x%y ; x=y ; y = temp ; return (y) ; 2.下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素输出数组b。请填空。main( ) int a10,b10, I; for(I=0;I10; I+) scanf(“%d”,&aI) ; for(I=1; (4) ; I+) bI= (5) ; for(I=1;I10;I+) printf(“%3d”,bI); if ( (6) ) printf(“n”); 四、写出下面程序的执行结果(本大题24分,每小题4分)1.main( ) int i;for(i=1;i=5;i+)switch(i%5) case 0: printf(“*”) ; break; case 1: printf(“#”) ; break; default: printf(“n”); case 2: printf(“&”); 2. main( ) char a55,i,j; for(i=0;i5;i+)for(j=0;j5;j+)if(i= =0|i= =j) aij=*;else aij= ; for(i=0;i5;i+)for(j=0;jb ) c = 1 ;else if ( a = b ) c = 0 ; else c = -1 ;printf ( “%dn”, c ) ;6.# include main ( ) int a =1,2,3,4,5,6,p; for (p=&a5;p=a;p) printf(%d, p); printf(n); 五、编程题(共27分)1.编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为A;8089分为 B;7079分为C;6069分为D;60分以下为 E。2.有一个5*5二维数组,试编程求周边元素及对角线元素之和,并输出该数组中值最小的元素。3.编写一个程序,用12个月份的英文名称初始化一个字符指针数组,当键盘输入整数为1到12时,显示相应的月份名,键入其它整数时显示错误信息。 模拟试题五一、选择题(本大题30分,每小题2分)1.下列说法正确的是 。E)在执行C程序时不是从mian函数开始的F)C程序书写格式严格限制,一行内
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!