二级C语言笔试考点相关真题(答案解析版)(7)

2019-01-07 19:32

{ int i,n[5]={0}; for(i=1;i<=4;i++)

{ n[i]=n[i-1]*2+1;printf(\,n[i]);} printf(\}

参考答案:13715

【解析】本题中已知n[0]为0,根据循环的执行可以得到n[1]为1,n[2]为3,n[3]为7,n[4]为15,因此输出结果是13715。

103【2010年9月选择题第28题】若要定义一个具有5个元素的整型数组,以下错误的定义语句是

A)int a[5]={0}; B)int b[]={0,0,0,0,0}; C)int c[2+3]; D)int i=5,d[i]; 参考答案:D

【解析】在进行数组的定义时,不能使用变量对数组的长度进行定义。其他选项均符合数组定义标准。

104【2010年9月填空题第9题】有以下程序 #include main()

{ int i,n[]={0,0,0,0,0}; for(i=l;i<=4;i++)

{n[i]=n[i-1]*3+1;printf(\,n[i]);} }

程序运行后的输出结果是 【9】 。 参考答案:1 4 13 40

【解析】第一次循环结果为:n[1]=0*3+1,即n[1]的值为1,打印输出1 ;第二次循环结果为:n[2]=1*3+1,即n[2]的值为4,打印输出4 ;第三次循环结果为:n[3]=4*3+1,即n[3]的值为13,打印输出13 ;第四次循环结果为:n[4]=13*3+1,即n[4]的值为40,打印输出40。

105【2010年9月填空题第13题】有以下程序 #include main()

{ int n[2],i,j;

for(i=0;i<2;i++)n[i]=0; for(i=0;i<2;i++)

for(j=0;j<2;j++)n[j]=n[i]+1; printf(\,n[1]); }

参考答案:3

【解析】通过第一次 for(i=0;i<2;i++) n[i]=0;的循环语句可知,已经将数组n 中的两个元素都赋初值为0。接下来的循环中,第一次循环,外循环 i=0 的前提下:内循环j=0时,运行完n[0]=n[0]+1后n[0]为1;j=1时,运行完n[1]=n[0]+1后,n[1]为2。第二次循环,外循环i=1的前提下,内循环j=0时,运行完n[0]=n[1]+1后n[0]为3;j=1时,运行完n[1]=n[1]+1后,n[1]为3。

106【2010年3月选择题第29题】有以下程序

31

#include main()

{ int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=0;i<5;i++) s=s+a[b[i]]; printf(\}

程序运行后的输出结果是

A)6 B)10 C)11 D)15 参考答案:C 【解析】当i=0时a[b[0]]=1;当i=1时a[b[1]]=3;当i=2时a[b[2]]=2;当i=3时a[b[3]]=4;当i=4时a[b[4]]=1。将以上各数值相加得11,故选C。 107【2009年9月选择题第29题】有以下程序: #include main()

{ int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2)

{ case 0:switch(a[i]%2)

{case 0:a[i]++;break; case 1:a[i]--; }break; case 1:a[i]=0; }

for(i=0;i<4;i++) printf(\,a[i]);printf(\; }

程序运行后的输出结果是________。 A)3 3 4 4 B)2 0 5 0 C)3 0 4 0 D)0 3 0 4 参考答案:C 【解析】 第一次循环,i=0,i%2=0,a[0]%2=0,a[0]=a[0]+1=3;第二次循环,i=1,1%2=1,a[1]=0;第三次循环,i=2,a[2]%2=1,a[2]=a[2]-1=4;第四次循环,i=3,i%2=1,a[3]=0。

6.2二维数组的定义和引用

108【2011年9月选择题第26题】以下定义数组的语句中错误的是________。 A)int num[]={1,2,3,4,5,6}; B)int num[][3]={{1,2},3,4,5,6};

C)int num[2][4]={{1,2},{3,4},{5,6}}: D)int num[][4]={1,2,3,4,5,6}; 参考答案:C

【解析】考查数组的定义,选项C)中定义的数组为两行四列的,但是初始化时是为三行两列的,所以初始化不正确。

109【2011年3月选择题第31题】有以下程序

32

#include main()

{ char a[30],b[30]; scanf(\,a); gets(b);

printf(\,a,b); }

程序运行时若输入:

how are you? I am fine <回车> 则输出结果是 A)how are you? I am fine B)how

are you? I am fine

C)how are you? I am fine D)how are you? 参考答案:B 解析】scanf函数会把空格字符作为输入的字符串之间的分隔符,因此字符串a为\how\。gets()函数读取字符串时,直至接受到换行符或EOF时才停止,并将读取的结果存放在指针所指向的字符数组中,因此其余输入的内容赋值给b。 110【2010年3月选择题第30题】有以下程序 #include main()

{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++)

for(j=i;j<=i;j++) t+=b[i][b[j][i]]; printf(\}

程序运行后的输出结果是

A)1 B)3 C)4 D)9 参考答案:C 【解析】当i=0,j=0时能进行相加操作,b[0][b[0][0]]=0;当i=1,j=1时能进行相加操作,b[1][b[1][1]]=1;当i=2,j=2时能进行相加操作,b[2][b[2][2]]=2。将以上各数值相加再加1,得4,故选C。

111【2010年3月填空题第9题】有以下程序 #include main()

{ int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)

for(j=i;j<3;j++)printf(\ printf(\}

程序运行后的输出结果是【9】。 参考答案:123569

33

【解析】当i=0时,j=0、1、2时满足条件,则打印a[0][0]、a[0][1]、a[0][2];当i=1时,j=1、2时满足条件,则打印a[1][1]、a[1][2];当i=2时,j=2时满足条件,则打印a[2][2],所以打印结果为123569。

112【2010年3月填空题第11题】有以下程序 #include main()

{ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int b[3]={0},i;

for(i=0;i<3;i++) b[i]=a[i][2]+a[2][i]; for(i=0;i<3;i++) printf(\ printf(\}

程序运行后的输出结果是【11】。 参考答案:101418 【解析】当i=0时,b[0]=a[0][2]+a[2][0]=3+7=10;当i=1时,b[1]=a[1][2]+a[2][1]=6+8=14;当i=2时,b[2]=a[2][2]+a[2][2]=9+9=18,则打印结果为101418。

6.3 字符数组

113【2011年9月选择题第30题】若有定义语句:char *s1=\,*s2=\;,以下选项中,能够输出\的语句是________。

A)if(strcmp(s1,s2)==0) puts(s1); B)if(strcmp(s1,s2)!=0) puts(s2); C)if(strcmp(s1,s2)==1) puts(s1); D)if(strcmp(s1,s2)!=0) puts(s1);

参考答案:D

【解析】strcmp(s1,s2)的作用是比较字符串s1和s2。参数str1,str2如果相同,则返回0,如果str1大于str2则返回一个正整数,如果str1小于str2则返回一个负整数。本题中s1,s2不相同,A)选项不会输出任何字符,B)选项输出ok,C)选项不输出任何字符,D)选项会输出OK。

114【2011年9月选择题第32题】有以下程序 #include #include main()

{ char a[5][10]={\,\,\,\,\; int i,j; char t[10]; for(i=0;i<4;i++) for(j=i+1;j<5;j++)

if(strcmp(a[i],a[j])>0)

{ strcpy(t,a[i]); strcpy(a[i],a[j]);strcpy(a[j],t);} puts(a[3]); }

程序运行后的输出结果是________。

A)beijing B)china C)wclcome D)tiananmen

34

参考答案:C 【解析】本题中程序的主要实现的功能是对这个字符数组,对其中的字符串按照首字母的从小到大排序,排完序后a[5][10]为{\ beijing \,\ china \,\ tiananmen \,\ welcome \,\ you \},所以a[3]为welcome。

115【2011年9月选择题第34题】有以下程序 #include main()

{ char ch[3][5]={\,\,\; printf(\,ch[1]); }

程序运行后的输出结果是________。

A)AAAA B)CC C)BBBCC D)BBB

参考答案:D

【解析】输出字符串ch[1],即输出BBB。

116【2011年3月选择题第16题】有以下程序段 char name[20]; int num;

scanf(\,name,&num);

当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为 A)Lili B)name=Lili

C)Lili num= D)name=Lili num=1001 参考答案:A

解析】scanf()函数规定,如果在\格式控制\字串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符,如题干中的\和\。在输入过程中遇到空格、回车或跳格键时认为输入结束,这些字符称为\间隔符\。 117【2011年3月选择题第21题】有以下程序 #include main()

{ char s[]=\int i,n=0;

for(i=0;s[i]!=0;i++)

if(s[i]>='0'&& s[i]<='9')n++; printf(\,n); }

程序运行后的输出结果是

A)0 B)3 C)7 D)8 参考答案:B

【解析】本题的程序是要统计字符串s中数字的个数,其中前三个字符满足选择条件,此时n为3,然后遇到字符'\\0',这个转义字符表示值为0的空字符NULL,此时循环条件不满足,因此循环结束。

118【2010年9月选择题第23题】有以下程序 #include #include

35


二级C语言笔试考点相关真题(答案解析版)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:心智游移

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: