历年全国计算机二级C语言题库

精心整理

50道C语言知识题

1.以下叙述中正确的是 A)用C程序实现的算法必须要有输入和输出操作 B)用C程序实现的算法可以没有输出但必须要有输入 C)用C程序实现的算法可以没有输入但必须要有输出 D)用C程序实现的算法可以既没有输入也没有输出 2.下列可用于C语言用户标识符的一组是 A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof 3.以下选项中可作为C语言合法常量的是 A)-80 B)-080 C)-8e1.0 D)-80.0e 4.若有语句:char *line[5];,以下叙述中正确的是 A) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量 B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C) 定义line是一个指针数组,语句中的*号称为间址运算符 D) 定义line是一个指向字符型函数的指针 5.以下定义语句中正确的是 A)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b; D)double a=00;b=1.1; 6.有以下程序段 char ch; int k; ch=′a′; k=12; printf(\ printf(\ 已知字符a的ASCII码值为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 7.有以下程序 main() { int i,s=1; for (i=1;i<50;i++) if(!(i%5)&&!(i%3)) s+=i; printf(\ 程序的输出结果是 A)409 B)277 C)1 D)91 8.当变量c的值不为2、4、6时,值也为\真\的表达式是 A)(c==2)||(c==4)||(c==6) B)(c>=2&& c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&& c<=6)&&(c%2!=1) 9.若变量已正确定义,有以下程序段 int a=3,b=5,c=7; if(a>b) a=b; c=a; 精心整理 if(c!=a) c=b; printf(\ 其输出结果是 A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7 10.有以下程序 #include main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++; break; case 1:b++; break; } case 2:a++; b++; break; case 3:a++; b++; } printf(\ } 程序的运行结果是 A)a=1,b=0 B)a=2,b=2 11.下列程序的输出结果是 #include \ main() { int i,a=0,b=0; for(i=1;i<10;i++) { if(i%2==0) {a++; continue;} b++;} printf(\ A)a=4,b=4 B)a=4,b=5 已知 #int t=0; while (t=1) {...} 则以下叙述正确的是 A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)以上说法都不对 12.下面程序的输出结果是 main() { int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf(\ A)3 B)4 C)1 13.以下错误的定义语句是 C)a=1,b=1 C)a=5,b=4 D)a=2,b=1 D)a=5,b=5 D)2 精心整理 A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4}; 14.有以下程序 void ss(char *s,char t) { while(*s) { if(*s==t)*s=t-′a′+′A′; s++; } } main() { char str1[100]=\′d′; ss(str1,c); printf(\ 程序运行后的输出结果是 A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd 15.有如下程序 main() { char ch[2][5]={\ int i,j,s=0; for(i=0;i<2;i++)p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>′\\0′;j+=2) s=10*s+p[i][j]-′0′; printf(\ 该程序的输出结果是 A)69825 B)63825 C)6385 D)693825 16.有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是 A)gets(&s[0]); B)scanf(\ C)gets(s); D)scanf(\ 17.以下叙述中错误的是 A)在程序中凡是以\开始的语句行都是预处理命令行 B)预处理命令行的最后不能以分号表示结束 C)#define MAX 是合法的宏定义命令行 D)C程序对预处理命令行的处理是在程序执行的过程中进行的 18.设有以下说明语句 typedef struct { int n; char ch[8]; } PER; 则下面叙述中正确的是 A)PER 是结构体变量名 B)PER是结构体类型名 C)typedef struct 是结构体类型 D)struct 是结构体类型名 19.以下叙述中错误的是 A)gets函数用于从终端读入字符串 B)getchar函数用于从磁盘文件读入字符 C)fputs函数用于把字符串输出到文件 D)fwrite函数用于以二进制形式输出数据到文件 20.以下能正确定义一维数组的选项是 A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\\0′}; 精心整理 C)char a={′A′,′B′,′C′}; D)int a[5]=\ 21.有以下程序 #include main() { char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′}; printf(\ 以下叙述中正确的是 A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3 B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3 C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3 D) 由于p和q数组中都没有字符串结束符,故长度都不能确定 22.有以下程序 #include #include void fun(char *s[],int n) { char *t; int i,j; for(i=0;istrlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;} } main() { char *ss[]={\ fun(ss,5); printf(\ } 程序的运行结果是 A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc 23.有以下程序 #include int f(int x) { int y; if(x==0||x==1) return(3); y=x*x-f(x-2); return y; } main() { int z; z=f(3); printf(\ } 程序的运行结果是 A)0 B)9 C)6 D)8 24.下面程序段的运行结果是 char str[]=\ printf(\ A)67 B)0 C)字符′C′的地址 D)字符′C′ 25.若有以下定义: struct link { int data;

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4