闽高校计算机二级C语言模拟题.doc_第1页
闽高校计算机二级C语言模拟题.doc_第2页
闽高校计算机二级C语言模拟题.doc_第3页
闽高校计算机二级C语言模拟题.doc_第4页
闽高校计算机二级C语言模拟题.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、 选择题(一)概述1.( A )为正确变量名A)pro_5 B)case C)5_pro D)else2.( C )为正确的用户标识符。A)min-5 B)3_row C)max_at D)union3.下面叙述正确的是(C )A)程序中必需包含自定义函数B)main( )函数必须位于源程序文件的开头C)所有语句都必须以分号“;”结束D)每行最多只能写两个语句4.下面叙述错误的是(A )A)注释说明部分只能位于C源程序的最前面B)C源程序必须包含一个main()函数C)C源程序可由一个或多个函数组成D)一个C源程序的执行是从main( )函数开始,直到main( )函数结束(二)语法基础5.下面叙述错误的是(C )A)算术运算符中不包含“=”运算符B)模运算符“%”是C语言基本的算术运算符C)算术运算符只有“*”,“/”优先级高于关系运算符D)自增和自减运算符只能用于变量,而不能用于常量或表达式6.下面叙述中正确的是(B )A)(3+9)+是正确的表达式B)C语言中的整型与字符型变量混合运算的结果是整型C)模运算符“”两边运算数的数据类型是任意的D)“abc”“xxx”是正确的表达式7.若有定义:int i=3, j=6; 则表达式(- -i)*(j+)的值为(A)。A)12 B)10 C)18 D)158.若有定义:float x=3.5, y=5.5; 则表达式(B )的值为2.A)(x+y)%7 B)(int)(x+y)%7 C)(int)x+y%7 D)int(x+y)%79 若有定义 int x=1, y=2, n=3; 则(B )为正确表达式A)x=ny B)x=y*3, y=(x+n)/yC)(x+y)(y+n) D)float(y/n)10若有定义: int a, 且表达式!a的值为0,则表达式( BD )的值为1A)!(a0) B)a!=0 C)a=0 D)a= =011若有定义:int a=3, b=5, c=8; 则表达式!(a-b)|(c-b)的值为( )。A)0 B)2 C)3 D)112若有定义: int x, char c=A;则正确的赋值表达式是(D )。(说明:A的ASCII码的十进制值为65,a的ASCII码的十进制值为97)A) x=c+ABC B)x=c+CBAC)x=ABC D)X=c+3213( A )为非法的字符串常量A)123 B)”056” C)” ” D)”case”14( C )为正确的字符常量A)165 B)084 C) D)bcd15(B)为合法的常量A)b_k B)1.23E+8 C)3.21E-6.5 D)5,32616.若有定义:int b= -15,则( )为正确的赋值表达式A)b=*5 B)b+=b*3 C) *b=6 D)b+10= -517若有定义: int x=1, y=2,z=3,则表达式( )的值为0.A)xy|xz B)x=y C) x|(y+z&y-z) D!(xy)&z)18若有定义: int a=6, b=7, k=0, t=1; 语句(k=ab)&(t=a= =b); 运行后,k, t的值分别是() 。A)1 0 B)0 1 C)0 0 D)1 1 19(B )语句符合C语言语法A)float x=3.2, int i, j=6;B)float x=2.3, b, c;C)int a=2, b+=a;D)int a=b=2, c=5;20下面叙述正确的是(D )A)+2与3等价 B)+2与- -3等价C)2/3与2%3等价 D)5/ (int)4.0与5/4等价 21若有定义float x=3.5, y=3.6; 则表达式(C )的值为6A)x+y B)(int)(x+y) C)(int)x+(int)y D)int(x+y)22以下程序段运行后x的值为( )int a=3, b=6, x;x=(a= =b)?a+:- -b;A)3 B)4 C)6 D)523若有定义: int a, b=5; 语句a=(b/2)+(b%2); 运行后, a的值为( )A)0 B)2 C)4 D)324若有定义:int a=1, b=2, c=3, d=4, t=2, k=2; 语句(t=ab)|(k=c27. 若有定义:int a=3; 语句a+=a-=a*a; 运行后, a的值为( )A)-12 B)-3 C)0 D)-628. x的值在-20至5之间为“真”,否则为“假”的正确逻辑表达式为( )A)-20x-5 B)-5x-20)&!(x-20&x-529.若有定义:int x, y, z; 语句x=(y=z=3,+y, z+=y); 运行后,x的值为( )。A)7 B)3 C)6 D)830若有定义float x; 要从键盘输入数据6.02赋给x, 则应选用( )语句。A)scanf(“%8.2f”, &x); B) scanf(“%1.2f”, &x); C) scanf(“%4.2f”, &x); D) scanf(“%f”, &x); 31.若有语句int a, charc;scanf(“%3d%c”,&a,&b); 为将整数135赋给a,字符6赋给c,正确的数据输入方式是( )(说明代表换行,_代表空格)A)1356B) 1356C)135_6_D)135_632若有定义:char c1=A, c2=B; 语句printf(“%d+%d=%d”, c1, c2, c1+c2); 运行的结果为( )。(说明A的ASCII码的十进制值为65)A)A+B=131 B)65+66=131C)65+66=AB D)A+B=AB33. 若有定义: int a=8, b=5; 要实现输出形式为:8*5=40,正确的printf( )函数调用语句是( )。A)printf(“%d*%d=a*bn”, a, b);B)printf(“%d*%d=%dn”, a, b, a*b);C)printf(“a*b=%dn”, a*b);D)printf(“a*b=a*bn”);(三)控制结构34.以下程序段运行的结果是( )int s=15;switch(s/4) case 1: printf(“One”);case 2: printf(“Two”);case 3: printf(“Three”);default : printf(“Over”);A) Two Over B) One OverC) Three OverD) Three35以下程序段运行结果是( )。int s=15;switch(s/4) default : printf(“Over”); case 1: printf(“One”); break;case 2: printf(“Two”);A)Over OneB)TwoC)OneD)Over two36.以下程序段运行后,若从键盘输入5,则运行结果是( )int a, y=10;scanf(“%d”, &a);if(a10) y=a+6;printf(“%dn”, y+a);A) 15 B)16 C)10 D)1137以下程序运行结果是( )void main( ) int a, b=2, c=6; a=3;if(a6) a=a+6;else if(a=6) b=a+c;else a=b+c;printf(“%dn”, a); A)6 B)9 C)5 D)838. 以下程序段运行后,x的值为( )int i, j, x=0;for(i=3; i=1; i- -) for(j=1; j0; x-) ;B)while(x=1) ;C) for( ; ; i+=2);D)for(i=10; ; i-); 40以下程序段运行后, x的值为( )int i=0, x=0;for( ; i=5; i+,i+) x+=3;A)9 B)6 C)12 D)1541.以下程序段运行后x的值为( )。int i=0, x=2;while (i+=5) x+=2; A)14 B)8 C)12 D)1042下面叙述正确的是( )A)for循环的循环体可包含多条语句,但必须用花括号括起来B)在for循环中,不能用break语句跳出循环体C)for循环是先执行循环体语句,后判断表达式D)for循环只能用于循环次数已经确定的循环43. 若有定义:int i, x=0; 语句for(i=1; i=3; i+) x+=2; 与下列( )程序段不等价。A) i=1;for( ; i=3; ) x+=2; i+; B)for(i=1; i=3; ) x+=2; i+; C)i=1;for( ; ; i+) x+=2;D)i=1; for( ; i=3; i+) x+=2;(四)数组44下面叙述错误的是(C )A)数组中每一个元素都属于同一个数据类型B)C语言规定可逐个引用数组元素,但不能一次引用整个数组C)C语言数组长度在定义数组时可不确定D)C语言数组名称是数组的首地址45若有定义: int a10, i=2; 则能正确引用数组元素的是( )A)a10 B)a(7) C) a9+i D)a10-i46.若有定义:int arr15, n=5; 无法正确引用arr数组元素的是( D )。A)arr0B)arrnC)arr15-n D)arr10+n47.以下程序段运行后,x的值为( )int a8=1,2,3,4,5,6,7,8, i, x=0;for(i=0; i8; i+, i+) x=x+ai;A)18 B)16 C)20 D)36 48.C语言中,二维数组元素在内存中的存放顺序是( )A)按列存放 B)随机存放C)由用户自己定义 D)按行存放49. 以下( )对二维数组arr的初始化是错误的。A)int arr23=1,2,3,4;B)int arr23=1,2,3,4,5,6;C)int arr 3=1,2,3,4,5;D)int arr23=1,3,4,5;50.以下程序段的运行结果是( )int t 3=1,2,3,4,5,6,7,8,9,10,11,12;printf(“%dn”, t11)A)3 B)1 C)5 D)451.以下程序段运行后,x的值为( )int i=0, x=0; int a33=1,2,3,4,5,6,7,8,9;for( ; i3; i+)x+=aii;A)12 B)18 C)0 D)1552.以下程序运行的结果是( )int fun(int array33) int j; for(j=0; j3; j+) array1j+; printf(“n”);main( ) int j, a33=0,1,2,1,0,4,2,4,5; fun(a); for(j=0; j3; j+) printf(“%2d”,a1j);printf(“n”);A)2 1 5 B)1 0 4 C)0 1 2 D)1 2 353.以下程序段的运行结果是( )。char str32=a,b,c,0,e,f;printf(“%s”, str0);A)abc0ef B)a C)abc D)abcef(五)函数54只能向终端输出一个字符的是( )A)putchar( )函数 B)printf( ) 函数C)scanf( ) 函数 D)getchar( ) 函数55getchar( )函数的功能是获取终端输入的( )。A)多个字符 B)一个整形变量表达式C)一个字符 D)一个实型变量值56下面叙述正确的是( )A)预处理命令也是C语句,必须以分号结束B)宏展开不占用运行时间,只占用编译时间C)一个源程序只能有一个预处理命令行D)宏名必须用大写字母表示57下面叙述错误的是( )。A)C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率B)“#define PRICE 30”命令的作用是定义一个与30等价的符号常量PRICEC)预处理命令行都必须以“#”开头D)预处理命令行必须以分号结束58下面叙述错误的是( )A)”#include ”命令的作用是在预处理时将stdio.h文件中的实际内容代替该命令B) 预处理命令行必须以分号结束C) C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率D)宏定义也是C语句,必须在行末加分号59以下程序运行结果是( )#define X a+bmain( ) int a=3, b=4, s1; s1=2*X; printf(“%dn”, s1);A)10 B)8 C)6 D)1460若有定义:#define PI 3,则表达式PI*2*2的值为( )A)4 B)12 C)不确定 D)32261.若有定义: #define F 2+3 ,则表达式F*F的值为( )A)17 B)13 C)25 D)1162.以下程序段运行结果是( )char str =“Fujian”;printf(“%d”, strlen(str);A)6 B)8 C)9 D)763以下程序段运行后,a的值为( )int a=2;a=strcmp(“miss”, “miss”);A)true B)-1 C)0 D)164. 以下程序段的运行结果是( )char a =”abcdef”;char b =”xyz”strcpy(a,b);printf(“%c”, a2);A) b B)z C)y D)c65.若有定义:char str110,str210=”Fujian”; 能将字符串“Fujian”赋给数组str1的正确语句是()A)strcpy(str1, str2); B)str1=”Fujian”;C)strcpy(str2, str1); D)strcopy(str1, str2);66以下程序段的运行结果是( )char a =”abc ”;char b =”xyz”;char c10;strcpy(c,a);strcat(c,b);printf(“%s”,c);A)xyzabc B)abc xyz C)abc D)xyz67以下程序的运行结果是( )int f(int c) c+=2; return c; main( ) int a=2, c=5; a=f(a); printf(“%d %dn”, a, c);A)4 4 B)2 5 C)4 5 D)2 468以下程序段运行结果是( )fun( )static int a=0; a+; printf(“%d “, a);main( )int i;for(i=1; i=2; i+)fun( );A)1 2 B)1 1 C)0 0 D)0 169以下程序段的运行结果是( )。int a=2, b=3;int min(int a, int b) int c; c=ab?a:b; return c;main( ) int a=4; printf(“%d”, min(a,b);A)3 B)2 C)4 D)2, 3(六)指针70下面叙述错误的是( )A)可以将一个整数值赋给指针变量B)一个变量的地址称为该变量的指针C)一个指针变量只能指向同一类型的变量D)任何指针变量都可以与空类型NULL进行比较71以下程序段运行结果是( )int x3=1, 2,3;int *p;p=x;for(p+; p&x2; p+) printf(“%d “, *p);A)3 B)2 C)2 3 D)1 272. 以下程序运行的结果是( )main( ) char a =”137”, *p; for(p=a; pa+3; p+)printf(“%s”, p);A) 7 B)137 C)137377 D)1373773以下程序段运行后,*(p+1)的值为( )char a =”good”;char *p;p=a;A)a1的地址 B)o C)不确定 D)g74.( )能正确定义一个指向函数的指针。A) (int *)p( ) B)int *p( )C) int (*p( ) D)int (*p)( )75以下程序段的运行结果是( )int x =2, 3, 4, 5, 6, 7,*p=x;int i, s=0;for(i=1; i5; i+) s+=pi+;printf(“%d”, s);A)6 B)8 C)20 D)1476以下程序段运行后, x的值为( )int a =1,2,3,4,5, 6, 7,8;int i, x, *p;x=1; p=&a1;for(i=0; i3; i+) x*=*(p+i);A)120 B)6 C)1 D)2477若有定义:int a10=0,1,2,3,4,5,6,7,8,9, *p=a; 则( )表达式是错误的。A)a+ B)a2 C)p+ D)p278.若有定义 int a34=1,2,3,4,5,6,7,8,9,10,11,12, (*p)4;p=a; ( )对数组a元素的引用是正确的A) *(p2+3) B)*(p+4) C)(*p)4 D)*(p4)79.下面程序段运行后,( )对数组a元素的引用是错误的。(其中0i4,0j3)int i, j, (*p)3;int a 3=1,2,3,4,5,6,7,8,9,10,11,12;p=a;A)*(*(ai)+j) B)pijC)*(*(p+i)j D)*(pi+j)80以下程序运行的结果是( )main( ) int x, y; int *p, *q, *t; x=23; y=45;p=&x; q=&y; t=p; p=q; q=t; printf(“%d, %dn”, x, y);A)23,45 B)45, 23 C)23, 23 D)45, 4581. 以下程序的运行结果是( )。main( )int a3=1,2,3;int *num3;int *p, i;for(i=0; iname0C) D)t1-name88下列程序段运行后,表达式( )的值为3。struct pointint x; int y;*p;struct point a3=1,2,3,4,5,6;p=a;A)*(p+2) B)p3.x C)p1.x D)p2.x(八)枚举、自定义类型和位运算89有定义:enum numa1,a2=3, a3, a4=10; 则枚举常量a2, a3的值分别为( )A)1 2 B)3 3 C)2 3 D)3 490若有定义:enum daysun, mon, tue, wed, thu, fri,sat; 则枚举常量sun、mon的值分别为( )A)7 0 B)0 1 C)7 1 D)1 2 91若有定义:typedef int *INTEGER;INTEGER p;则下面叙述正确的是()A)p是一个整型变量B)程序中可用INTEGER定义int类型指针变量C)程序中可用INTEGER定义int类型变量D)p是与INTEGER相同的类型(九)文件92下面程序运行后,文件d_f.dat的内容是( )。main( ) FILE *fp; int i=10, j=20;fp=fopen(“d_f.dat”,”w”);fprintf(fp, “%d ”,i);fclose(fp);fp=fopen(“d_f.dat”,”a”);fprintf(“%d “,j);fclose(fp);A)20 10 B)10 C)10 20 D)20 93 若当前工作目录下有一文本文件test.txt,其内容为“cprogram”(不包含引号),则以下程序段的运行结果是( )FILE *fp;char *str;if(fp=fopen(“test.dat”,”r”)!=NULL) str=fgets(str, 5, fp);printf(“%s”, str);fcolse(fp);A)cpro B)cprog C)gram D)ogram94()不是文件读库函数A)fputs( ) B)fgetc( ) C)fread( ) D)fscanf( )95下面程序运行后,屏幕显示write ok!, 则下面叙述正确的是( )。main( ) FILE *fp;fp=fopen(“data.txt”,”w+”);if(fp!=NULL) fprintf(fp, “%sn”, “File write successed!n”);fclose(fp);printf(“write ok!n”);A)当前工作目录下存在tata.txt文件,其中的内容是”write ok!”B) 当前工作目录下的tata.txt文件已经打开C) 当前工作目录下的tata.txt文件已经关闭D) 当前工作目录下找不到tata.txt文件96下面程序运行后,屏幕显示File open error!则可能的原因是( )#include main( ) FILE *fp; char str256;fp=fopen“test.txt”,”r+”;if(fp= =NULL) printf(“File open error!”); return ;fscanf(fp, “%s”, str);fcolse(fp);A)当前工作目录下的test.txt文件是空文件B)fopen( )的参数是错误的C)test.txt文件已经打开D)当前工作目录下没有test.txt文件补充97.以下程序段运行后, x的值为( )。int a =1, 2, 3, b =4, 3, 3;int *p, *q;int i, x;p=a; q=b;for(i=0; i3; i+) if(*(p+i)=*(q+i) x=*(p+i)*2;A)6 B)不确定 C)2 D)498若有定义typedef int NUM100;NUM n;则( )语句是正确的A)NUM=2 B)n=2 C)n0=2 D)NUM=n99.若有定义:int a34=1,23,45, 6,7; 则a11的值为( )。A)3 B)1 C)4 D)2100.以下程序段运行后,s的值为( )。int a33=1,2,3,1,2,3,1,2,3;int i, j, s=0;for(i=0; i3; i+) for(j=i; j3; j+) s+=aij;A)13 B)12 C)15 D)14101.( )是正确的数组定义A)int n; n=5; int arrn;B)int N=5, arrN;C)int n=5; int arrn;D)int arr10;二、改错题Cmody131.c程序cmody131.c的功能是:输入两个整数,输出它们的商和商的第一位小数。例如:输入: 19 7输出:2.714286 7#includevoid main() int a,b,c; /*/ int f; /*/ clrscr(); printf(Please input a b :); scanf(%d%d,/*/a,b/*/); f=/*/ a/b; /*/ c=(int)(f-(int)f)*10); printf(n%f %dn,f,c); getch();Cmody132.c程序cmody132.c,实现打印10到99数中能被3整除且至少有1位是4的数#include void find(/*/ n /*/) int a1,a2; a1=m%10; a2=m/10; if(m%3=0 &(/*/ a1=4 & a2=4 /*/) printf(%dn,m);void main() int k; for(k=10;k=99;k+) /*/ fun( k ) /*/; getch();Cmody141.c程序cmody141.c的功能是:输入若干个整数,以零结束。分别统计其中比第一个数小的数的个数以及比第一个数大的数的个数,并输出。例如:输入:4 11 7 5 8 6 4 30 3 0 输出:3 5#includevoid main() /*/ int a,Tag; /*/ int num1=0,num2=0; clrscr(); printf(please input numbers :); scanf(%d,/*/ a /*/); tag=a; while(a) scanf(%d,&a); /*/ if(a) /*/ continue; else if(atag) num2+; printf(n%d %dn,num1,num2); getch();Cmody142.c程序cmody142.c,用递归算法求1!3!5!7!9!#include long int fsum(int n) long int k; if(n=1) /*/ k=0 /*/; else k=n*fsum(n-1); return (/*/ 1 /*/);void main() int i; long int sum; sum=0; for(i=1;i=9;/*/ i+;i+ /*/) sum+=fsum(i); printf(sum=%ldn,sum); getch();Cmody151.c程序cmody151.c的功能是输入一个原码表示的8位二进制(最高位为符号位,0表示正数,1表示负数,其余位为无符号数),将其转换成十进制数并输出。例如:输入:10100101输出:-37#includevoid main() int i,a=0; /*/ c1,c2; /*/ clrscr(); printf(Enter an 8 bit binary number :); c2=getchar(); /*/ for(i=1,i=7;i+) /*/ c1=getchar(); a=a*2+c1-0; /*/ If (c2) /*/ a=(-1)*a; printf(n%d n,a); getch();Cmody152.c程序cmody152.c以每行最多9个数的方式打印101000之间所有满足各位数字左右相互对称的数,如66、181,202等#includevoid main( ) int i,n; /*/ n = 1; /*/ for(i=10;i=100;i+) if(i/10=i%10) printf(%5d,i); n+; if(/*/ n%9=0 /*/) printf(n); for(i=100;i=999;i+) if(/*/ i/100=i/10 /*/) printf(%5d,i); n+; if(n%9=0) printf(n); getch();Cmody161.c程序cmody161.c的功能是:用插入排序法对输入的10个整数按从小到大排序,输出排序结果。例如:输入: 3 5 4 6 8 1 2 1 7 4输出: 1 1 2 3 4 4 5 6 7 8 #include void main() /*/ int a(10); /*/ int i,j,k,x; printf(Enter 10 numbers:); scanf(%d,/*/ x /*/); a0=x; for(k=1;k=9;k+) scanf(%d,&x); for(i=0;ix) break; if(ii;j-) aj=aj-1; ai=x; /*/ for(i=1;i=10;i+) /*/ printf(%d ,ai); printf(n); getch();Cmody162.c程序cmody162.c中的fun( )函数功能是:运用勾股定理近似地判定一个三角形是否为直角三角形,即给定三角形的边长a,b,c,若能构成直角三角形则返回1,否则返回0.#include #include int fun( /*/ float a, b, c /*/) float t; int mk = 0; if(ca) t = a; a = c; c = t; if(cb) t = b; b = c; c = t; if( fabs( c*c - (a*a+b*b) 1.0e-8) mk = 1; /*/ return (1); /*/main() float a,b,c; printf(Please input three numbers(a b c):n); scanf(%f%f%f,&a,&b,&c); if(/*/ fun(a b c) /*/= 1) printf(Yesn); else printf(Non); getch();Cmody171.c程序cmody171.c的功能是用选择排序法对输入的10个整数按从小到大排序,输出排序结果。例如:输入:3 5 4 6 8 1 2 1 7 4输出:1 1 2 3 4 4 5 6 7 8 #include void main() int a10=0; /*/ int i, j, k,temp, /*/ printf(Enter 10 numbers:); /*/ for(k=1;k10;k+) /*/ scanf(%d,&ak); for(i=0;i9;i+) k=i; for(j=i+1;jaj) k=j; if(k!=i) /*/ temp=ai;ak=ai;ai=temp; /*/ for(i=0;i10;i+) printf(%d ,ai); printf(n); getch();Cmody172.c程序cmody172.c中的fmax(float x, float y, float z)函数,实现返回x,y,z中的最大值。#include void main() float a,b,c,max; float fmax(float,float,float); printf(Please input 3 numbers:n); scanf(%f%f%f,&a,&b,&c); max=/*/ fmax(a;b;c) /*/; printf(The max number is:%.2fn, max); getch();/*/float fmax(float x, y, z) /*/ float m1,m2; m1=(yz)?y:z; m2=/*/ (xy)?x:y; /*/ return(m2);Cmody181.c程序cmody181.c的功能是:输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论