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
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
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) 输出值不定
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺热点:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
10.以下程序的输出结果是( B )。#include
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 www.Examda.CoM
D) EFGH
FGH EFG JK IJKL
KL IJ O
M
15.当执行下面的程序时,如果输入ABC,则输出结果是( A )。
#include
#include
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;
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺热点:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
19.当输入的数据为2、5时,以下程序的输出结果是( C )。#include
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};
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
{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
#include
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
#include
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
#define N 6
main( )
{char c[N];
int i=0;
for(;i
for(i=0;i
}
输入以下三行,每行输入都是在第一列上开始,代表一个回车符:
a
b
cdef
程序的输出结果是( 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
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺热点:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
28.请选出以下程序的输出结果(A )。#include
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);
}
输入数据如下:(此处代表回车符)
aaaa bbbb
cccc dddd
A) aaaa
B) aaaa
C) aaaa
D) aaaa bbbb
bbbb bbbb bbbb cccc
cccc cccc dddd dddd
cccc dddd dddd eeee
29.请读程序:
main( )
{int n[2],i,j,k;
for(i=0;i<2;i++) n[i]=0;
k=2;
for(i=0;i
for(j=0;j
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
for(j=0;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计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺热点:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!
二、填空题
1.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。
#include
#include
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
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);
}
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
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=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
if( ave>a[i] ) printf(“%f\n”, x[i]);
}
推荐新闻:2013计算机二级C语言及答案汇总※章节在线测试※课后题精选及答案汇总
冲刺热点:2013年计算机二级考试冲刺※考前注意事项※考试试题首发※悬赏等考真题
欢迎进入:233网校“计算机二级C语言在线估分”,助大家参考练习!