1、二级 C语言笔试-106 及答案解析(总分:112.00,做题时间:90 分钟)一、选择题(总题数:50,分数:64.00)1.当执行以下语句后,函数 strlen(str)返回的值是 ( )static char str10”Change“;(分数:1.00)A.10B.7C.6D.112.若输入 60和 13,以下程序的输出结果为 ( )# define SURPLUS (a,b)(a)%(b);main ( )int a,b;scanf(“%d,%d“,puchar(/n);若运行时从键盘上输入 OPEN THE DOOR CR(CR表示回车),则上面程序的输出结果是 ( )(分数:1.
2、00)A.oPEN tHE dOORB.ope the doorC.OPEN THE DOORD.Open The Door11.下列程序执行后输出结果是 ( )main( )char arr24;strcpy(arr,“you“);strcpy(arr,1,“me“);arr03while(p1p2)s* p1+;*pl* p2 - -;* p2s;main( )char a“ABCDEFG“;fun(a,strlen(a);puts(a);上面程序的输出结果是 ( )(分数:1.00)A.GEFDCBAB.AGADAGAC.AGAAGAGD.GAGGAGA19.与十进制数 96等值的二进制
3、是 ( )(分数:1.00)A.01100000B.10010110C.01100001D.0110001120.请读程序:# includdestdioh# includestringvoid fun(char * s)char a10;strcpy(a,“STRING“);s=a;main()char*p;fun(p);print(“%s/n“,p);上面程序的输出结果( 表示空格) ( )(分数:1.00)A.B.C.D.21.在以下各标识符中,合法的用户标识符是 ( )(分数:1.00)A.001B.table_1C.0_tD.k%22.请读程序:# includestdiohvoid
4、 fun(int * s)static int j0;dosj+sj+1while( + + j2);main( )int k,a10l,2,3,4,5;for(kl;k3;k+ +)fun(a);for(k0;k5;k+)prinf(“%d“,ak);上面程序的输出结果是 ( )(分数:1.00)A.34756B.23445C.35745D.1234523.若 k是 int型变量,且有下面程序片段:k-3;if(k0)printf(“# # # #“)else printf(“jk;j+ +)njni+l;print(“%d/n“,nk);上面程序片段输出结果是 ( )(分数:2.00)A.
5、不确定的值B.3C.23D.145.当执行下列宏定义命令后,S 的值为 ( )# defineR3.0# define PI 3.1415926# define L2 * PI * R# define S PI * R * R(分数:2.00)A.3.1415926B.18.849556C.3.0D.28.274333446.若 x和 y都是 int型变量,x100,y200,且有程序片段:printf(“%d“,(x,y);上面程序片段的输出结果 ( )(分数:2.00)A.200B.100C.100 200D.输出格式符不够,输出不确定的值47.若 x为 int型变量,则执行以下语句后,x
6、 的值为 ( )x6;x+x-=x*x;(分数:2.00)A.36B.-60C.60D.-24二、填空题(总题数:14,分数:48.00)48.Windows3.X中,所有的系统程序和应用程序都处于 【1】 的集中管理之下。(分数:2.00)填空项 1:_49.判定表和判定树是以图文形式描述数据流图的 【2】 (分数:2.00)填空项 1:_50.汉字系统中,字库中的汉字是以 【3】 码存在。(分数:2.00)填空项 1:_51.防止软盘感染病毒的最有效的方法是 【4】 。(分数:2.00)填空项 1:_52.汇编程序和编译程序翻译的目标程序需经 【5】 连接成可执行的程序。(分数:2.00)
7、填空项 1:_53.下面程序段的输出结果是 【6】 。int i0,sum1;dosum + i+ +;while(i6);print(“%d/n“,sum);(分数:2.00)填空项 1:_54.将经过确认测试的软件与外设、网络等连接在一次运行的测试叫 【7】 (分数:2.00)填空项 1:_55.以下程序的功能是找出三个字符串中的最大串。【8】 # includestdiohmain()int i;char string20,str320;(i0;i3;i+)gets( 【9】 );if(strcmp(str,str0,str10)strcpy(string,str0);else strc
8、py(string,str1);if(strcmp(str2,string) 【10】 )srtcpy(string,str2);printf(“The largest string is/n%s/n“,string);(分数:6.00)填空项 1:_56.设 a、b、c 为整形数,且 a2,b3,c4 则执行完以下语句后,a 的值是 【11】 。a*16+(b+)-(+ +c);(分数:2.00)填空项 1:_下面的程序通过函数 average计算数组中各元素的平均值,请填空。float avetage(int * pa,int n)int i;float avg0.0;for(i=0;in
9、;i+ +);avgavg+ 【12】 ;avg 【13】 ;return avg;main()int i,a52,4,6,8,10,;float mean;prinf(“% mean% f/n“,mean);(分数:8.00)填空项 1:_填空项 1:_57.阅读程序:# includestringh# includestrdiohstrle(char a,char b)int num0,n0;while(*(a+num)!0)num+ +;while(bn)* (a+num)bn;num+ +;n+ +;return(num);main()char strl81,str281,* p1st
10、rl,*p2str2;gets(p1);gets(p2);prinf(“%d/n“,strle(p1,p2);运行上面的程序,如果从键盘上输入字符串 qwerty和字符串 abcd,则程序的输出结果是 【14】 。(分数:2.00)填空项 1:_阅读程序:main( )char strl“how do you do“,str210;char * p1strl,* p2str2;scanf(“%s”,p2);printf(“%s”,p2);printf(“%s/n“,p1);运行上面的程序,输入字符串 HOW DO YOU DO 则程序的输出结果是 【15】 。(分数:6.00)填空项 1:_填
11、空项 1:_填空项 1:_58.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次放到该文件中,用井作为结束输入的标志。请填空。# includestdiohmain( )FILE * fp;char ch,fname10;printf(“Input the name of file/n“);gets(fname);if(fp 【16】 )NULL)printf(“Can not ope/n“);exit(O);printf(“Enter data/n“);while(chgetchar()! # )fputc( 【17】 ,fp);fclose(fp);(分数:4.00)填空项
12、 1:_59.以下函数 creat用来建立一个带头结点的单向链表,新产生的结点是插在链表头的末尾。单向链表的头指针作为函数值返回。请填空。# includestdiohstruct listchar data;struct list * next;struct list * creat;struct list * h,* p,* q;char ch;h( 【18】 )malloc ( sizeof(struct list);pqh;chgetchar();while(ch!?)p( 【19】)mallco(sizeof(struct list);p-datach;q-nextp;qp;chge
13、tchar();p-next/0;【20】;(分数:6.00)填空项 1:_二级 C语言笔试-106 答案解析(总分:112.00,做题时间:90 分钟)一、选择题(总题数:50,分数:64.00)1.当执行以下语句后,函数 strlen(str)返回的值是 ( )static char str10”Change“;(分数:1.00)A.10B.7C.6 D.11解析:2.若输入 60和 13,以下程序的输出结果为 ( )# define SURPLUS (a,b)(a)%(b);main ( )int a,b;scanf(“%d,%d“,puchar(/n);若运行时从键盘上输入 OPEN
14、THE DOOR CR(CR表示回车),则上面程序的输出结果是 ( )(分数:1.00)A.oPEN tHE dOORB.ope the door C.OPEN THE DOORD.Open The Door解析:11.下列程序执行后输出结果是 ( )main( )char arr24;strcpy(arr,“you“);strcpy(arr,1,“me“);arr03while(p1p2)s* p1+;*pl* p2 - -;* p2s;main( )char a“ABCDEFG“;fun(a,strlen(a);puts(a);上面程序的输出结果是 ( )(分数:1.00)A.GEFDCB
15、AB.AGADAGAC.AGAAGAG D.GAGGAGA解析:19.与十进制数 96等值的二进制是 ( )(分数:1.00)A.01100000 B.10010110C.01100001D.01100011解析:20.请读程序:# includdestdioh# includestringvoid fun(char * s)char a10;strcpy(a,“STRING“);s=a;main()char*p;fun(p);print(“%s/n“,p);上面程序的输出结果( 表示空格) ( )(分数:1.00)A.B.C.D. 解析:21.在以下各标识符中,合法的用户标识符是 ( )(分
16、数:1.00)A.001B.table_1 C.0_tD.k%解析:22.请读程序:# includestdiohvoid fun(int * s)static int j0;dosj+sj+1while( + + j2);main( )int k,a10l,2,3,4,5;for(kl;k3;k+ +)fun(a);for(k0;k5;k+)prinf(“%d“,ak);上面程序的输出结果是 ( )(分数:1.00)A.34756B.23445C.35745 D.12345解析:23.若 k是 int型变量,且有下面程序片段:k-3;if(k0)printf(“# # # #“)else p
17、rintf(“jk;j+ +)njni+l;print(“%d/n“,nk);上面程序片段输出结果是 ( )(分数:2.00)A.不确定的值 B.3C.23D.1解析:45.当执行下列宏定义命令后,S 的值为 ( )# defineR3.0# define PI 3.1415926# define L2 * PI * R# define S PI * R * R(分数:2.00)A.3.1415926B.18.849556C.3.0D.28.2743334 解析:46.若 x和 y都是 int型变量,x100,y200,且有程序片段:printf(“%d“,(x,y);上面程序片段的输出结果
18、( )(分数:2.00)A.200 B.100C.100 200D.输出格式符不够,输出不确定的值解析:47.若 x为 int型变量,则执行以下语句后,x 的值为 ( )x6;x+x-=x*x;(分数:2.00)A.36B.-60 C.60D.-24解析:二、填空题(总题数:14,分数:48.00)48.Windows3.X中,所有的系统程序和应用程序都处于 【1】 的集中管理之下。(分数:2.00)填空项 1:_ (正确答案:1程序管理器)解析:49.判定表和判定树是以图文形式描述数据流图的 【2】 (分数:2.00)填空项 1:_ (正确答案:2判定树、判定表)解析:50.汉字系统中,字库中的汉字是以 【3】 码存在。(分数:2.00)填空项 1:_ (正确答案:3字形)解析:51.防止软盘感染病毒的最有效的方法是 【4】 。(分数:2.00)填空项 1:_ (正确答案:4进行写保护)解析:52.汇编程序和编译程序翻译的目标程序需经 【5】 连接成可执行的程序。(分数:2.00)填空项 1:_ (正确答案:5装配程序)解析:53.下面程序段的输出结果是 【6】 。int i0,sum1;dosum + i+ +;