2013年计算机二级考试C语言课后模拟题六及答案
1.下列描述中不正确的是( C )。
A) 字符型数组中可以存放字符串
B) 可以对字符型数组进行整体输入、输出
C) 可以对整型数组进行整体输入、输出
D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
2.执行下面的程序段后,变量k中的值为( A )。
int k=3, s[2];
s[0]=k; k=s[1]*10;
A) 不定值
B) 33
C) 30
D) 10
3.设有数组定义:char array[ ]="China"; 则数组array所占的空间为( C )。
A) 4个字节
B) 5个字节
C) 6个字节
D) 7个字节
4.下列程序执行后的输出结果是( D )。
#include<string.h>
main( )
{ char arr[2][4];
strcpy(arr,"you");strcpy(arr[1],"me");
arr[0][3]=’&’;
printf("%s \n",arr);
}
A) you&me
B) you
C) me
D) err
5.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是( D )。
main( )
{ char s[100];
int c, i;
scanf("%c", &C);
scanf("%d", &i);
scanf("%s", s);
printf("%c, %d, %s\n", c, i,s);
}
A) 123,456,789 B) 1,456,789
C) 1,23,456,789
D) 1,23,456
6.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4}; 则数组x在内存中所占字节数是( D )。
A) 3
B) 6
C) 10
D) 20
7.以下程序的输出结果是( C )。
main( )
{int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A) 258
B) 741
C) 852
D) 369
冲刺专题:2013年3月计算机二级考试冲刺专题
推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
热点关注:2013年3月计算机等级考试试题答案首发通知 悬赏征集计算机等考真题及答案欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
8.以下数组定义中不正确的是( D )。A) int a[2][3];
B) int b[][3]={0,1,2,3};
C) intc[100][100]={0};
D) intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
9.以下程序的输出结果是( A )。
main( )
{int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
A) 0650
B) 1470
C)5430
D) 输出值不定
10.以下程序的输出结果是( B )。
#include<string.h>
main( )
{char st[20]="hello\0\t\\\";
printf(%d %d\n",strlen(st),sizeof(st));
}
A) 9 9
B) 5 20
C) 9 20
D) 20 20
11.以下程序的输出结果是( B )。
main( )
{int i,k,a[10],p[3];
k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]=a[i*(i+1)];
for(i=0;i<3;i++) k+=p[i]*2;
printf("%d\n",k);
}
A) 20
B) 21
C)22
D) 23
12.以下程序的输出结果是( C )。
main( )
{int i, x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)printf("%d", x[i][2-i]);
}
A) 159
B) 147 来源:考试大
C) 357
D) 369
13.以下程序的输出结果是( A )。
main( )
{int a[3][3]={{1,2},{3,4},{5,6}}, i, j, s=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++) s+=a[i][j];
printf("%d\n", s);
}
A) 18
B) 19
C) 20
D) 21
14.以下程序的输出结果是( D )。
main( )
{char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;
for(k=1;k<3;k++)printf("%s\n",w[k]);
}
A) ABCD
B) ABCD
C) EFG
D) EFGH
FGH EFG JK IJKL
KL IJ O
M
冲刺专题:2013年3月计算机二级考试冲刺专题
推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
热点关注:2013年3月计算机等级考试试题答案首发通知 悬赏征集计算机等考真题及答案欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
15.当执行下面的程序时,如果输入ABC,则输出结果是( A )。#include<stdio.h>
#include<string.h>
main( )
{char ss[10]="12345";
gets(ss);strcat(ss,"6789");printf("%s\n",ss);
}
A) ABC6789
B) ABC67
C) 12345ABC6
D) ABC456789
16.若要定义c为2×3×4的三维数组,正确的定义语句是( A )。
A)float c[2][3][4]
B) float c[2,3,4]
C) floatc(2,3,4)D) float c(2)(3)(4)
17.若定义inta[2][2]={1,2,3,4},则a数组的各数组元素值分别为( A )。
A) a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4
B)a[0][0]=1,a[0][1]=3,a[1][0]=2,a[1][1]=4
C)a[0][0]=4,a[0][1]=3,a[1][0]=2,a[1][1]=1
D) a[0][0]=4,a[0][1]=2,a[1][0]=3,a[1][1]=1
18.在下列叙述中,正确的一条是( A )。
A) 以下语句是正确的:char c[]=”ab”;
B) 一维数组的定义可采用下列格式:int a(10);
C) 下面的语句定义了一个二维数组:float a[3,4];
D) 以下两个语句中的a[3][4]的含义相同:int a[3][4]; a[3][4]=1;
19.当输入的数据为2、5时,以下程序的输出结果是( C )。
#include<stdio.h>
main( )
{intf[100],i,j,k,m;
scanf(“%d%d”,&k,&m);
for(i=0;i<=m;i++) f[i]=0;
f[k-1]=1;
for(i=k;i<=m;i++)
for(j=i-k;j<=i-1;j++) f[i]+=f[j];
printf(“%d%10d%10d\n”,k,m,f[m]);
}
A) 3 5 5
B) 3 5 7
C) 2 5 5 来源:考试大
D) 3 6 9
20.在下列语句中,正确的是( A )。
A)char str[]=”China”;
B) char str[];str=”China”;
C) char str1[5],str2[]={”China”};str1=str2;
D) char str1[],str2[];str2={”China”};strcpy(str1,str2);
21.下面语句中不正确的是( D )。
A) inta[5]={1,2,3,4,5};
B) int a[5]={1,2,3};
C) inta[]={0,0,0,0,0};
D) int a[5]={0*5};
冲刺专题:2013年3月计算机二级考试冲刺专题
推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
热点关注:2013年3月计算机等级考试试题答案首发通知 悬赏征集计算机等考真题及答案欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
22.若先后输入4、1、5、3、7,以下程序的输出结果为( D )。#defineMAX 100
main( )
{
int i,j,n,flag,t,a[MAX];
printf(“输入数据个数:”);
scanf(“%d\n”,&n);
for(i=1;i<=n;i++) scanf(“%d”,&a[i]);
for(i=1;i<n;i++)
{flag=1;
for(j=1;j<=n-i;j++)
if(a[j]>a[j+1])
{flag=0;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
if(flag) break;
}
for(i=1;i<=n;i++) printf(“%-3d”,a[i]);
printf(“\n”);
}
A) 2 4 6 7
B) 1 2 3 4
C) 1 5 4 7
D) 1 3 5 7
23.以下程序的输出结果是( B )。
main( )
{int n,a[10];
for(n=0;n<=9;n++)
a[n]=n;
for(n=9;n>=0;n--)
printf(“%d”,a[n]);
}
A) 1 2 3 4 5 6 7 8 9 10
B) 9 8 7 6 5 43 2 1 0
C) 10 9 8 7 6 5 4 3 2 1
D) 0 1 2 3 4 5 6 7 8 9
24.若输入aefjhi、c、adfjhijk,以下程序的输出结果为(B )。
#include<stdio.h>
#include<string.h>
main( )
{int i;
char string[20],str[3][20];
for(i=0;i<3;i++) gets(str[i]);
if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);
else strcpy(string,str[1]);
if(strcmp(str[2],string)>0)strcpy(string,str[2]);
printf(“Thelargest string is\n%s\n”,string);
}
A) adfjhi
B) c
C) aefjhijk
D) aefjhi
25.以下程序的输出结果是( A )。
#include<stdio.h>
#include<string.h>
main( )
{char str[12]={’s’,’t’,’r’,’i’,’n’,’g’};
printf(“%d\n”,strlen(str));
}
A) 6
B) 7
C) 11
D) 12
26.有以下程序:
#include<stdio.h>
#define N 6
main( )
{char c[N];
int i=0;
for(;i<N;c[i]=getchar( ),i++);
for(i=0;i<N;putchar(c[i]),i++);
}
输入以下三行,每行输入都是在第一列上开始,<CR>代表一个回车符:
a<CR>
b<CR>
cdef<CR>
程序的输出结果是( C )。c[i]={'a','\0','b','\0','c','d'}
A) abcdef
B) a
C) a
D) a
b b b
c cd d
d cdef
e
f
27.设有:char str[ ]=“Beijing”; 则执行:printf(“%d\n”,strlen(strcpy(str, “China”)));后输出的结果为( A )。"china"copyto str with '\0',it will stop when the strlen meets with '\0'.
A) 5
B) 7
C) 12
D) 14
28.请选出以下程序的输出结果(A )。
#include<stdio.h>
main( )
{chars1[10],s2[10],s3[10],s4[10];
scanf(“%s%s”,s1,s2);gets(s3);gets(s4);
puts(s1);puts(s2);puts(s3);puts(s4);
}
输入数据如下:(此处<CR>代表回车符)
aaaa bbbb<CR>
cccc dddd<CR>
A) aaaa
B) aaaa
C) aaaa
D) aaaa bbbb
bbbb bbbb bbbb cccc
cccc cccc dddd dddd
cccc dddd dddd eeee
冲刺专题:2013年3月计算机二级考试冲刺专题
推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
热点关注:2013年3月计算机等级考试试题答案首发通知 悬赏征集计算机等考真题及答案欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
29.请读程序:main( )
{int n[2],i,j,k;
for(i=0;i<2;i++) n[i]=0;
k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++) n[j]=n[i]+1;
printf(“%d\n”,n[k]);
}
上面程序的输出结果是( A )。
A) 不确定的值
B) 3
C) 2
D) 1
30.请读程序片段(字符串内没有空格字符):printf(“%d\n”,strlen(“ATS\n012\1\\”));其输出结果应为( C )。
A) 11
B) 10
C) 9
D) 12
31.下述对C语言字符数组的描述中错误的是( C )。
A) 字符数组可以存放字符串
B) 字符数组中的字符串可以整体输入、输出
C) 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D) 不可以用关系运算符对字符数组中的字符串进行比较
32.阅读下列程序:
main( )
{int n[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for(i=0;i<k;i++)
for(j=0;j<k;j++)
n[j]=n[i]+1;
printf(“%d\n”,n[1]);
}
上述程序运行后,输出的结果是( D )。
A) 2B) 1C) 0
D) 3
33.以下程序的输出结果是( C )。
main( )
{int n[3][3], i, j;
for(i=0;i<3;i++)
for(j=0;j<3;j++) n[i][j]=i+j;
for(i=0;i<2;i++)
for(j=0;j<2;j++) n[i+1][j+1]+=n[i][j];
printf(“%d\n”, n[i][j]);
}
A) 14
B) 0
C) 6
D) 值不确定
34.以下语句的输出结果为( A )。
printf(“%d\n”, strlen(“\t\”\065\xff\n”));
A) 5
B) 14
C) 8
D) 输出项不合法,无正常输出
35.合法的数组定义是( D )。
A) int a[]=”string”;
B) int a[5]={0,1,2,3,4,5};
C) char a=”string”;
D) char a[]={0,1,2,3,4,5};
冲刺专题:2013年3月计算机二级考试冲刺专题
推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
热点关注:2013年3月计算机等级考试试题答案首发通知 悬赏征集计算机等考真题及答案欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
36.以下程序的输出结果是( D )。main( )
{char w[ ][10]={"ABCD","EFGH","IJKL","MNOP"},k;
for(k=1;k<3;k++)printf("%s\n", &w[k][k]);
}
A) ABCD
B) ABCD
C) EFG
D) FGH
FGH EFG JK KL
KL IJ O
M
37.函数调用strcat(strcpy(str1,str2), str3 )的功能是( C )。
A) 将串str1复制到串str2中后再连接到串str3之后
B) 将串str1连接到串str2之后再复制到串str3之后
C) 将串str2复制到串str1中后再将串str3连接到串str1之后
D) 将串str2连接到串str1之后再将串str1复制到串str3之后
38.有以下定义:
char x[ ]=“abcdefg”;
char y[ ]={‘a’, ‘b’, ‘c’, ‘d’,‘e’, ‘f’, ‘g’};
则正确的叙述为( C )。
A) 数组x和数组y等价B) 数组x和数组y的长度相同
C) 数组x的长度大于数组y的长度
D) 数组x的长度小余数组y的长度
39.下面程序的运行结果是( C )。
main( )
{char ch[7]={"65ab21"};
int i, s=0;
for(i=0;ch[i]>= ‘0’&&ch[i]<=‘9’;i+=2)
s=10*s+ch[i]-‘0’;
printf("%d\n", s);
}
A) 12ba56
B) 6521
C) 6
D) 62
40.以下程序运行后,输出结果是( B )。
main( )
{int y=18, i=0, j, a[8];
do
{a[i]=y%2; i++;
y=y/2;
}while(y>=1);
for(j=i-1;j>=0;j--)printf("%d", a[j]);
printf(“\n”);
}
A) 10000
B) 10010
C) 00110
D) 10100
41.以下程序的输出结果是( D )。
main( )
{int n[5]={0,0,0}, i, k=2;
for(i=0; i<k; i++) n[i]=n[i]+1;
printf("%d\n", n[k]);
}
A) 不确定的值
B) 2
C) 1
D) 0
42.若有定义和语句:char s[10];s=”abcd”;printf(“%s\n”,s);则输出结果是( D )。
A) abcd
B) a
C) abc
D) 编译通不过
冲刺专题:2013年3月计算机二级考试冲刺专题
推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
热点关注:2013年3月计算机等级考试试题答案首发通知 悬赏征集计算机等考真题及答案欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
二、填空题1.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。
#include <stdio.h>
#include <string.h>
main( )
{char a[ ]="clanguage", t;
int i, j, k;
k=strlen(a);
for(i=0; i<=k-2; i+=2)
for(j=i+2; j<k; j=j+2 )
if( a[j]>a[i] )
{ t=a[i]; a[i]=a[j]; a[j]=t; }
puts(a);
printf("\n");
}
2.若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)
while(s[i]){ d[j]= s[i++] ;j++;}
d[j]=0;
3.下列程序段的输出结果是 Hello 。
main( )
{ char b[]="Hello,you";
b[5]=0;
printf("%s\n",
B);
}
4.若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式应该是 a=1234b=5 。
char a[10], b;
scanf(“a=%s b=%c”, a, &
B);
5.以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制数的形式输出,请填空。
main( )
{int b[16]={‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘A’, ‘B’, ‘C’,‘D’, ‘E’, ‘F’};
int c[64], d, i=0, base;
long n;
printf(“Enter a number:\n”); scanf(“%ld”,&n);
printf(“Enter new base:\n”); scanf(“%d”,&base);
do
{c[i]= n%base ;
i++;
n=n/base;
}while(n!=0);
printf(“Transmite new base:\n”);
for(--i;i>=0;--i)
{d=c[i];
printf("%c", [ d] );
}
}
6.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中的第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。请填空。
main( )
{char str1[100], str2[100], c;
int i, s;
printf(“\n Input string 1:\n”); gets(str1);
printf(“\n Input string 2:\n”); gets(str2);
i=0;
while((str1[i]= =str2[i])&&(str1[i]!= ' \0 ' ))
i++;
s= str1[i]-str2[i] ;
printf("%d\n", s);
}
冲刺专题:2013年3月计算机二级考试冲刺专题
推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
热点关注:2013年3月计算机等级考试试题答案首发通知 悬赏征集计算机等考真题及答案欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
7.以下语句的输出结果是 2 。printf(“%d\n”,strlen(“\t\”\085\xff\n”));
8.对数组中的元素值进行排序:
main( )
{int a[]={2,4,15,3,17,5,8,23,9,7,11,13}, i, j, k;
for(k=0;k<12;k++)
for(i=k;i<12;i++)
if(a[i]> a[k] )
{j=a[i];
a[i]= a[k] ;
a[k] =j;
}
for(i=0;i<12;i++)
printf(“%4d”, a[i]);
}
9.由25人围坐成圆圈,先从任意一人出发用1到25顺时针依次编号,然后从1号开始顺时针报数(1、2、3、……),凡报5的倍数者出圈,剩下者继续报数,求出最后出圈者的编号。
#include<stdio.h>
Void main( )
{int a[26], j, n, count;
for(j=1;j<=25;j++) a[j]=j;
j=1;count=0;n= 0 ;
do
{if(a[j]!=0) 考试大(www.Examda。com)
{n++;
if(n%5= =0)
{ a[j]=0 ;
if(count= =24) printf(“%d\n”, j);
count++;
}
}
j++;
if(j>25) j=1;
}
while( count<25 );
}
10.阅读下列程序:
main( )
{int i, j, row, column, m;
int array[3][3]={{100, 200, 300}, {28, 72, -30}, {-850, 2, 6}};
m=array[0][0];
for(i=0; i<3; i++)
for(j=0; j<3; j++)
if(array[i][j]<m)
{m=array[i][j]; row=i; column=j;}
printf("%d, %d, %d\n", m, row,column);
}
上述程序的输出结果是 -850,2,0 。
11.以下程序的功能是:从键盘上输入若干个学生的成绩,计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。
main( )
{float x[1000], sum=0.0, ave, a;
int i, n=0;
printf(“Enter mark:\n”); scanf(“%f”, &a);
while(a>=0.0&&n<1000)
{sum+= a ; x[n]= a ; n++; scanf(“%f”, &a);}
ave= sum/n ;
printf(“Output:\n”);
printf(“ave=%f\n”, ave);
for(i=0;i<n;i++)
if( ave>a[i] ) printf(“%f\n”, x[i]);
}
冲刺专题:2013年3月计算机二级考试冲刺专题
推荐新闻:2013年计算机二级考试C语言课后题及答案汇总 C语言章节练习在线测试
热点关注:2013年3月计算机等级考试试题答案首发通知 悬赏征集计算机等考真题及答案欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!