资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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),则与 a=100;等价的语句为(B)A)*p=100; B)*pp=100; C) 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“,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.设有如下程序:#include“string.h“main()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.D 2010 上半年等考二级 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=scanf(“%d“,scanf(“%d“,D)p=p=3.以下程序调用 findmax 函数返回数组中的最大值findmax(int*a,int n) int*p,*s;for(p=a,s=a;p-a if()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)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;i sub1()for(i=0;i sub3(int a) int i;for(i=0;i printf(“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.D 2010 上半年等考二级 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 c
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号