




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010上半年等考二级C语言笔试精选试题(1)1.下面叙述正确的是(c) A)define和auto都不能定义为用户标识符B)可以把define和auto定义为用户标识符C)可以把define定义为用户标识符,但auto是C语言的关键字D)可以把auto定义为用户标识符,但define是C语言的关键字所谓标识符,就是你起的一个名字。c/c+中,是你用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等的。(就好像你父母有了你以后给你起的名字) c/c+有效标识符的构成规则如下 (1)第一个字符必须是字母(不分大小写)或下划线(_); (2)后跟字母(不分大小写)、下划线(_)或数字组成; (3)标识符中的大小写字母有区别。如,变量sum,sum,sum代表三个不同的变量; (4)不能与c编译系统已经预定义的、具有特殊用途的保留标识符(即关键字)同名。比如,不能将标识符命名为float,auto,break,case,this,try,for,while,int,char,short, unsigned,等等;2.以下的for循环(C)for(x=0,y=0;(y!=123)&(xstr2本身是没有错误的,但是要看他能不能达到你所期望的目的比如字符串str=abcdefg那么针对这个字符串的str1str2这个比较式的意义就是取第2个字符和第3个字符做比较,bc字符型的比较会返回他们的ASI值进行比较 因为b在字符上排列是在C之前,所以bc返回的是假值这个计算式得到的是false4.设有定义:int a,*p=&a,*pp=&p;,则与a=100;等价的语句为(B)A)*p=100; B)*pp=100; C)&*p=100; D)*pp=10;5.有以下程序int x=3;do printf(%d,x-=2);while(!(-x);程序运行后的输出结果是(c)A)1 B)30 C)1-2 D)死循环6.执行下面程序的正确结果是(B)main() float a=1.9;switch(a) case 0printf(0000); case 1printf(1111); case 2printf(3333);printf(%f,a);A)1.900000 B)111133331.900000 C)33331.900000 D)00001111233331.9000007.对下述程序,正确的判断是(A)main () int a, b;scanf(%d,%d,&a,&b);if(ab)a=b;b=a;else a+;b+;printf(%d,%d,a,b);A)有语法错误不能通过编译 B)若输入4,5则输出5,6 C)若输入5,4则输出4,5 D)若输入5,4则输出5,58.若有如下程序:sub(int n)intt;if(n=1)returnt=5;else t=sub(n-1)+3;returnt;main()printf(%dn,sub(5);则程序运行后的输出结果是(A)A)17 B)18 C)19 D)209.下面各被调用函数首部书写正确的是(c)A)void sub(float x;float y);B)void sub(float x,y)C)void sub(float x,float y)D)void sub(float x,float y);10.设有如下程序:#includestring.hmain()static char s120,s220;scanf(%s,s1);scanf(%s,s2);if(strcmp(s1,s2)printf();elseprintf($);printf(%dn,strlen(strcat(s1,s2);如果从键盘上输入namename1,则程序运行后的输出结果是(D)A)$8 B)10 C)$9 D)9函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) char string10; char *str1 = abcdefghi; stpcpy(string, str1); printf(%sn, string); return 0; 函数名: strcat 功 能: 字符串拼接函数 用 法: char *strcat(char *destin, char *source); 程序例: #include #include int main(void) char destination25; char *blank = , *c = C+, *Borland = Borland; strcpy(destination, Borland); strcat(destination, blank); strcat(destination, c); printf(%sn, destination); return 0; 函数名: strchr 功 能: 在一个串中查找给定字符的第一个匹配之处 用 法: char *strchr(char *str, char c); 程序例: #include #include int main(void) char string15; char *ptr, c = r; strcpy(string, This is a string); ptr = strchr(string, c); if (ptr) printf(The character %c is at position: %dn, c, ptr-string); else printf(The character was not foundn); return 0; 函数名: strcmp 功 能: 串比较 用 法: int strcmp(char *str1, char *str2); 看Asic码,str1str2,返回值 0;两串相等,返回0程序例: #include #include int main(void) char *buf1 = aaa, *buf2 = bbb, *buf3 = ccc; int ptr; ptr = strcmp(buf2, buf1); if (ptr 0) printf(buffer 2 is greater than buffer 1n); else printf(buffer 2 is less than buffer 1n); ptr = strcmp(buf2, buf3); if (ptr 0) printf(buffer 2 is greater than buffer 3n); else printf(buffer 2 is less than buffer 3n); return 0; 答案:1.C 2.C 3.C 4.B 5.C 6.B 7.A 8.A 9.C 10.D2010上半年等考二级C语言笔试精选试题(3)1.若以下对fun函数的调用是正确的: x=fun(fun(a,b,c),(a+b,a+c),a+b+c);则fun函数的形参个数为(A)A)3 B)4 C)5 D)62.若有说明:int*p, m=5; n;,以下正确的程序段是(D)A)p=&m;scanf(%d,&p)B)p=&n;scanf(%d,&p)C)scanf(%d,&p)p=&n;D)p=&n;p=&m;3.以下程序调用findmax函数返回数组中的最大值findmax(int*a,int n) int*p,*s;for(p=a,s=a;p-aif()s=p;return(*s);main() intx5=12,21,13,6,18;printf(%dn,findmax(x,5);在下划线处应填入的是(B)A)ps B)*p*s C)apas D)p-ap-s4.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,则正确语句是(C)A)p=2*(int*)malloc(sizeof(int);B)p=(int*)calloc(2*sizeof(int);C)p=(int*)malloc(2* sizeof(int);D)p=2*(int*)calloc(sizeof(int);5.下列程序的输出结果是(D)main()char *p1,*p2,str50=xyz;p1=abcd;p2=ABCD;strcpy(str+2,strcat(p1+2,p2+1);printf(%s,str);A)xyabcAB B)abcABz C)Ababcz D)XycdBCD6.以下叙述中不正确的是(B)A)一个变量的作用域完全取决于变量定义语句的位置B)全局变量可以在函数以外的任何部位进行定义C)局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用D)一个变量说明为static存储类是为了限制其他编译单位的引用7.交换两个变量的值,不允许用临时变量,应该使用下列哪一个位运算符(c)A) B)& C) D)|8.下面的说法不正确的是(B)A)函数调用时,先求出实参表达B)函数调用是在程序运行时处理的,分配临时的内存单元。而宏展开则是在编译时进行的,在展开时也要分配内存单元,进行值传递C)对于函数中的实参和形参都要定义类型,二者的类型要求一致,而宏不存在类型问题,宏名有类型D)调用函数只可得到一个返回值,而用宏可以设法得到几个结果9.fscanf函数的正确调用形式是(D)A)fscanf(fp,格式字符串,输出表列);B)fscanf(格式字符串,输出表列,fp);C)fscanf(格式字符串,文件指针,输出表列);D)fscanf(文件指针,格式字符串,输入表列);10.以下程序的运行结果是(D)# define MAX 10int aMAX,i;main() printf(n);sub1();sub3(a);sub2();sub3(a);sub2() int aMAX,i,max;max=5;for(i=0;isub1()for(i=0;isub3(int a) int i;for(i=0;iprintf(n);A)0 2 4 6 8 10 12 14 16 180 1 2 3 4B)0 1 2 3 40 2 4 6 8 10 12 14 16 18C)0 1 2 3 4 5 6 7 8 90 1 2 3 4D)0 2 4 6 8 10 12 14 16 180 2 4 6 8 10 12 14 16 18答案:1.A 2.D 3.B 4.C 5.D 6.B 7.C 8.B 9.D 10.D2010上半年等考二级C语言笔试精选试题(4)1.若有如下程序: main()chara=china0name0;printf(%d,strlen(a);printf(%dn,sizeof(a);则程序运行后的输出结果是(B)A)5,11 B)5,12 C)11,11 D)12,122.指针变量p的基类型为int,并已指向一连续存储区,若p中当前的地址值为1234,则执行p+后,p中的值为(C)A)1234 B)1235 C)1236 D)12373.函数调用“strcat(strcpy(str1,str2),str3)”的功能是(C)A)将串str1拷贝到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再拷贝到串str3之后C)将串str2拷贝到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1拷贝到串str3中4.下面宏定义正确的是(c)A)#define S a*bB)#define PI 3.14;C)#define max(a,b) (a)(b)?(a)(b)D)#defines (x) (x)*(x); 5.下面叙述正确的是(B)A)函数调用不可以出现在表达式中B)函数调用可以作为一个函数的实参C)函数调用可以作为一个函数的形参D)函数不可以直接调用其本身6.有如下程序#includemain()int v1=0,v2=0;char ch;while (ch=getchar()!=#)switch(ch)casea:caseh:default:v1+;case 0:v2+;printf(%d,%dn,v1,v2);如果从键盘上输入china#,则程序运行结果为(c)A)2,0 B)5,0 C)5,5 D)2,57.程序中头文件type1.h的内容是:#define N 5#define M1 N*3程序如下:#includetype1.h#define M2 N*2main()int i;i=M1+M2;printf(%dn,i);程序编译运行后的输出结果是(C)A)10 B)20 C)25 D)308.C语言规定函数返回值的类型由(A)A)在定义时所指定的函数类型所决定B)调用该函数时的主调函数类型所决定C)return语句中的表达式类型所决定D)调用该函数时系统临时决定9.若有如下程序:main()int a34=1,2,3,4,5,6,7,8,9;printf(%d%d%dn,a01,a12,a23);则程序运行后的输出结果是(A)A)270 B)480 C)160 D)不定值10.以下能将字符串:youareluck!正确读入的语句组是(C)A)char s80;scanf(%s,s);B)char*s;scanf(%s,s);C)char s80;gets(s);D)char*s;gets(s);答案:1.B 2.C 3.C 4.C 5.B 6.C 7.C 8.A 9.A 10.C 2010上半年等考二级C语言笔试精选试题(5)1.若变量已正确定义并赋值,对库函数错误调用的是 cA) k=scanf(%d%d,&i,&j);B) printf(%dn,k);C) getchar(ch);D) putchar(ch);2.要求定义一个返回值为double类型的名为mysum的函数,其功能为求两个double类型数的和值,正确的定义是:DA) mysum(double a,b) return (a+b); B) mysum(double a, double b) return a+b; C) double mysum(int a, intb);return a+b; D) double mysum(double a, double b) retrun (a+b); 3.以下是对fun函数的正确调用:fun(a+b,fun(a+b,(a,b);则fun函数有_2_个形参。4.若有以下函数定义:myfun(double a, int n) 则myfun函数值的类型是CA) voidB) doubleC) intD) char5.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值。以下选项中错A) double fun( int a,int b ) main() fun( i,k );B) main()printf( %fn,fun( 2,10 );double fun( int a,int b ) C) double fun( int, int );main() x=fun( i,k );double fun( int a,int b ) D) main() double fun(int i,int y);x=fun( i,k );double fun(int a,int b) 6.若有以下函数:int fun(int x) return (1+x*x); 则语句printf( %dn,fun(fun(fun(fun( 1 ) );的输出结果是677答案:C D 2 C B 6772010上半年等考二级C语言笔试精选试题(6)1.若有以下定义:floatx;inta,b,c=2;,则正确的switch语句是(C) A)switch(x) case1.0printf(*n);case2.0printf(*n);B)switch(int(x) case1printf(*n);case2printf(*n);C)switch(a+b) case1printf(*n);case1+2printf(*n);D)switch(a+b) case1printf(*n);casecprintf(*n);2.执行下面程序片段的结果是(B)int x=123;do printf(%dn,x-);while(!x);A)打印出321B)打印出123C)不打印任何内容D)陷入死循环3.以下程序的输出结果是(B)# includemain() int i=0,a=0;while(i20) for(;) if(i)=0)break;else i-; i+=11;a+=i;printf(%dn,a);A)21 B)32 C)33 D)114.下列与表达式“b=(a0?10)”的功能等价选项是(B)A)b=0;if(a=0)if(a0) b=1;else b=-1;B)if(a0)b=1;else if(a0)b=-1;elseb=0C)if(a)if(a0)b=1;else b=0;D) b=-1;if(a)if(a0)b=1;else if(a=0)b=0;else b=-1;5.若有以下定义:char a; int b; float c; double d; 则表达式“a*b+d-c”值的类型为(D)A)float B)int C)char D)double6.以下叙述中正确的是(B)A)在函数中必须要有return语句B)在函数中可以有多个return语句,但只执行其中的一个C)return语句中必须要有一个表达式D)函数值并不总是通过return语句传回调用处7.有以下程序float fun(int x,int y) return(x+y);main()int a=2,b=5,c=8;printf(%3.0fn,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是(B)A)编译出错 B)9 C)21 D)9.08.若已定义:inta=0,1,2,3,4,5,6,7,8,9,*p=a,I;其中0i9,则对a数组元素不正确的引用是(D)A)ap-a B)*(&ai) C)pi D)a109.以下叙述中正确的是(B)A)全局变量的作用域一定比局部变量的作用域大B)静态(static)类型变量的生存期贯穿于整个程序的运行期间C)函数的形参都属于全局变量D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值10.若有如下程序:main()char a9=china,Japan,USA,France;printf(%sn,a2);则程序运行后的输出结果是(B)A)Japan B)USA C)USA D)inaJapanUSAFrance答案:1.C 2.B 3.B 4.B 5.D 6.B 7.B 8.D 9.B 10.B2010上半年等考二级C语言笔试精选试题(7)1.若变量c为char类型,能正确判断出c为小写字母的表达式是(D) A)a=c=a)|(c=a)&(c=z)2.下面程序的输出结果是(A)main() int x=2,y=0,z;x+=3+2;printf(%d,x);x*=y=z=4;printf(%d,x);A)728 B)无法计算 C)7,4 D)8,43.有如下程序main()int x=1,a=0,b=0;switch(x)case 0b+;case 1a+;case 2a+;b+;printf(a=%d,b=%dn,a,b);程序运行后的输出结果是(A)A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=24.以下选项中,正确的if-else语句是(B)A)if(x!=0)printf(%d,x)elseprintf(%d,-x);B)if(x!=0)x=x+y;printf(%d,x); elseprintf(%d,-x);C)if(x!=0)x=x+y;printf(%d,x);elseprintf(%d,-x);D)if(x!=0)x=x+y;printf(%d,x);elseprintf(%d,-x);5.有以下程序段int n=0,p;do scanf(%d,&p);n+;while(p!=12345 &n3);此处do-while循环的结束条件是(D)A)p的值不等于12345并且n的值小于3B)p的值等于12345并且n的值大于等于3C)p的值不等于12345或者n的值小于3D)p的值等于12345或者n的值大于等于36.若有如下程序段:main() int n=0;while(printf(*) n+;if(n0)y=1;elsey=0;该程序段所描述的数学关系是(C)A)y=-1(x0)B)y=1(x0)C)y=0(x0)D)y=-1(x0)10.设有数组定义:char array=China;array所占的空间为(C)A)4个字节 B)5个字节 C)6个字节 D)7个字节答案:1.D 2.A 3.A 4.B 5.D 6.B 7.A 8.C 9.C 10.C2010上半年等考二级C语言笔试精选试题(8)1.有以下程序: main()int x=0xFFFF;printf(%dn,x-);执行后的输出结果是(C)A)32767 B)FFFE C)-1 D)-327682.以下程序的输出结果是(A)#include#includemain() char str12=s,t,r,i,n,g;printf(%dn,strlen(str);A)6 B)7 C)11 D)123.若有以下定义:char s20=programming,*ps=s;则不能代表字符o的表达式是(A)A)ps+2 B)s2 C)ps2 D)ps+=2,*ps4.关于语句“for(表达式1;表达式2;表达式3)”,下面说法中错误的是(C)A)for语句中的三个表达式可以同时省略B)for语句可以用于循环次数不确定的情况C)for语句中表达式2只能是关系表达式或逻辑表达式D)for语句中表达式1和表达式3可以是逗号表达式5.执行下面程序片段的结果是(B)int x=23;do printf(-,x-);while(!x);A)打印出321 B)打印出23 C)不打印任何内容 D)陷入死循环6.与y=(x0?1x0)y=1;else if(x0) y=1;else if(x0)y=1;else if(x=0) y=0;else y=-1;D)y=0;if(x=0)if(x0) y=1;else y=-1;7.标准库函数fgets(s,n,f)的功能是(B)A)从文件f中读取长度为n的字符串存入指针s所指的内存B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C)从文件f中读取n个字符串存入指针s所指的内存D)从文件f中读取长度为n-1的字符串存入指针s所指的内存8.若有如下函数调用语句:sub(a,1,fun(b,c),d+c,(a+d,c*f);则在该函数调用语句中含有实参的个数是(A)A)5 B)7 C)10 D)69.若要定义a为34的二维数组,正确的定义语句是(B)A)float a(3,4); B)float a34; C)float a(3)(4); D)float a3,4;10.有以下程序main()int aa44=1,2,3,4,5,6,7,8,3,9,10,2,4,2,9,6;int i,s=0;for (i=0;i4;i+)s+=aai1;printf(%dn,s);程序运行后的输出结果是(B)A)11 B)19 C)13 D)20答案:1.C 2.A 3.A 4.C 5.B 6.A 7.B 8.A 9.B 10.B 2010上半年等考二级C语言笔试精选试题(9)1.以下程序的输出结果是(B) #includemain ()int a,b,d=241;a=d/100%9b=(-1)&(+1);printf(%d,%d,a,d); A)6,1 B)2,1 C)6,0 D)2,02.关于if后一对圆括号中的表达式,以下叙述中正确的是(D)A)只能用逻辑表达式 B)只能用关系表达式 C)既可用逻辑表达式也可用关系表达式 D)可用任意表达式3.有以下程序main() int a,b;for(a=1,b=1;a=20)break;if(b%3=1)b+=3;continue;b-=5;printf(%dn,a);程序运行后的输出结果是(B)A)7 B)8 C)9 D)104.C语言中(D)A)不能使用do-while语句构成的循环B)do-while语句构成的循环必须用break语句才能退出C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环5.当a=1、b=3、c=5、d=4时,执行下面一段程序:if(aif(celseif(aif(belsex=3;elesx=6;elsex=7;程序执行后,x的值为(B)A)1 B)2 C)3 D)66.若x、y、z、m均为int型变量,则执行下面语句后m的值是(A)m=1;x=2;y=3;m= (mm= (mm= (mA)1 B)2 C)3 D)47.设有如下的函数funct(x)float x; x*=x;printf(n%d,x);return(x);则函数的类型(C)A)与参数x的类型相同 B)void C)int D)无法确定8.在C语言中,不适用于局部变量的存储类说明符是(D)A)auto B)register C)static D)extern9.有以下程序intf(int n)if(n=1) return 1;else returnf(n-1)+1;main()inti,j=0;for(i=1;i5;i+)j+=f(i);printf(%dn,j);程序运行后的输出结果是(B)A)15 B)10 C)6 D)310.有以下程序intb=2;int func(int*a)b+=*a;return(b);main()int a=2,res=2;res+=func(&a);printf(%dn,res);程序运行后的输出结果是(B)A)4 B)6 C)8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环保行业绿色物流报告:绿色物流与物流环保
- 2025年工业互联网平台与5G通信模组适配性产业链协同效应研究报告
- 线上培训协议合同范本
- 私人商铺转让合同范本
- 矿山工人安全合同范本
- 远程兼职客服合同范本
- 电脑耗材供货协议合同
- 维修车辆服务合同范本
- 线上讲师合作合同范本
- 绿化装饰工程合同范本
- 中秋节知识课件
- GB/T 27060-2025合格评定良好实践指南
- DB45∕T 2789-2023 壮医药线点灸治疗护理技术操作规范
- 分子诊断技术在感染性疾病中的应用-深度研究
- 《智能AI分析深度解读报告》课件
- 行测5000题电子版2025
- 《规训与惩罚》课件
- 【MOOC】声乐作品赏析与演唱-扬州大学 中国大学慕课MOOC答案
- 2024年版机电产品国际招标标准招标文件
- 糖尿病高血压健康教育
- 铜府字202322号铜鼓县革命文物保护利用专项规划(公布稿)
评论
0/150
提交评论