江苏省计算机二级C语言试题笔试3.docx
《江苏省计算机二级C语言试题笔试3.docx》由会员分享,可在线阅读,更多相关《江苏省计算机二级C语言试题笔试3.docx(10页珍藏版)》请在冰豆网上搜索。
江苏省计算机二级C语言试题笔试3
江苏省C等级考试(四)
一、选择题(本题共20道小题,共40分。
)
1.(14)指针s所指字符串的长度为
char*s="\\"Name\\Address\n";
A)19B)15C)18D)说明不合法
2.若有下面的程序片段:
inta[12]={0},*p[3],**pp,i;
for(i=0;i<3;i++)
p[i]=&a[i*4];
pp=p;
则对数组元素的错误引用是
A)pp[0][1]B)a[10]C)p[3][1]D)*(*(p+2)+2)
3.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A)a<>0B)!
a
C)a=0D)a
4.若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9],*p=a,i;
其中0≤i≤9,则对a数组元素不正确的引用上
A)a[p-a]B)*(&a[i])C)p[i]D)a[10]
5.以下程序的输出结果是
main()
{intx=10,y=10,I;
for(i=0;x>8;y=++i)
printf("%d,%d",x--,y);
}
A)10192B)9876C)10990D)101091
6.下面程序的输出是
voidprtv(int*x)
printf("%d\n",++*x);}
main()
{inta=25;
prtv(&a);}
A)23B)24
C)25D)26
7.下面能正确进行字符串赋值操作的语句是
A)chars[5]={"ABCDE"};B)chars[5]={'A'、'B'、'C'、'D'、'E'};
C)char*s;s="ABCDEF";D)char*s;scanf("%s",s);
8.设x,y,z,t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;t=++x||++y&&++z;
A)不定值B)2C)1D)0
9.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A)k=*p1+*p2;
B)p2=k;
C)p1=p2;
D)k=*p1*(*p2);
10.请读程序:
#include
#defineSUB(X,Y)(X)*Y
main()
{inta=3,b=4;
printf("%d",SUB(a++,b++));
}
上面程序的输出结果是
A)12B)15
C)16D)20
11.sizeof(float)是:
A)int
B)float
C)double
D)不确定
12.若执行下面的程序时从键盘上输入3和4,则输出是
main()
{inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=s*s;
printf("%d\n",s);}
A)14B)16C)18D)20
13.以下程序的输出结果是
#include
main()
{printf("%d\n",NULL);}
A)不确定的(因变量无定义)B)0C)-1D)1
14.请读程序:
#include
f(char*s)
{char*p=s;
while(*p!
='\0')p++;
return(p-s);
}
main()
{printf("%d\n",f("ABCDEF"));}
上面程序的输出结果是
A)3B)6C)8D)0
15.下面各语句行中,能正确进行赋字符串操作的语句行是
A)charst[4][5]={"ABCDE"};B)chars[5]={'A','B','C','D','E'};
C)char*s;s="ABCDE";D)char*s;scanf("%s",s);
16.若有说明:
long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A)*p=&a;scanf("%ld",p);
B)p=(long*)malloc(8);scanf("%ld",p);
C)scanf("%ld",p=&a);
D)scanf("%ld",&a);
17.若已定义:
inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是
A)p+1B)a+1C)a++D)++p
18.下面程序的输出是
main()
{enumteam{my,your=4,his,her=his+10};
printf("%d%d%d%d\n",my,your,his,her);}
A)0123B)04010C)04515D)14515
19.以下程序输出结果是
main()
{
intm=5;
if(m++>5)printf("%d\n",m);
elseprintf("%d\n",m--);
}
A)7B)6
C)5D)4
20.以下程序运行后,输出结果是intd=1;
fun(intp)
{
intd=5;
d+=p++;
printf("%d",d);
}
main()
{
inta=3;
fun(a);
d+=a++;
printf("%d\n",d);
}
A)84B)99C)95D)44
二、填空题(每空1分,共10分。
)
1.程序由主要由__________、_________组成。
2.在C语言中,不同运算符之间运算次序存在_________的区别,同一运算符之间运算次序存在________的规则。
3.欲将字符串S1复制到字符串S2中,其语句是____________。
4.结构化程序设计中的三种基本结构是_________、__________、___________。
5.表达式x=x+1表示成增量表达式为___________。
6.定义inta[]={1,2,3,4,5,6},*p=a;表达式(*++p)++的值是____________。
三、判断题(本题共10道小题,共10分。
)
1.在不得已的情况下(例如提高程序运行效率),才使用goto语句()
2.条件表达式可以取代if语句,或者用if语句取代条件表达式()
3.在C程序中对用到的所有数据都必须指定其数据类型()
4.可以对字符型数组进行整体输入、输出()
5.函数中的静态变量在函数每次调用时,都会重新设置初值()
6.实参和与其对应的形参共占用一个存储单元()
7.一个实型变量的值肯定是精确的()
8.在不同函数中可以使用相同名字的变量()
9.函数调用:
strcat(strcpy(str1,str2),str3)的功能是将串str2连接到串str1之后再将串str1复制到串str3中()
10.系统不允许用户重新定义标准库函数()
四、程序填空(本题共5道小题,每题4分,共20分。
)
1.22、下面程序的运行结果是________。
#include
main()
{inti=5;
charc[6]="abcd";
do
{
c[i]=c[i―1];
}while(――i>0);
puts(c);
}
2.以下程序的执行结果是____________。
#include<stdio.h>
main()
{
inta[3][3]={1,2,3,4,5,6,7,8,9},i,s=0;
for(i=0;i<=2;i++)
s=s+a[i][i];
printf("s=%d\n",s);
}
3.以下程序中,for循环体执行的次数是______________。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{inti;
for(i=1;i{...}
...
}
4.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。
请填空。
voidsstrcpy(char*s,char*t)
{while(*s++=_____________);}
main()
{charstr1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
5.14、以下fun函数把ch中的大写字母转换成字母序列中的下一个大写字母,字母Z转换成字母A,其它字符不变,返回转换后的字母或其它字符。
请填空。
charfun(charch)
{
if(ch=='Z')ch=__________;
elseif(ch>='A'&&ch<='Y')ch=__________;
returnch;
}
五、编程题(本题共2道小题,共20分。
)
1.从键盘输入一个一维数组,将这个数组逆序输出。
2.编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。
例如,假定输入的字符串为:
asdasasdfgasdaszx67asdmklo,子字符串为:
as,则应输出6。
江苏省C等级考试(四)
一、选择题(本题共20道小题,共40分。
)
1.B
2.C
3.D
4.D
5.D
6.D
7.C
8.C
9.B
10.A
11.C
12.B
13.B
14.B
15.C
16.A
17.C
18.C
19.B
20.A
二、填空题(每空1分,共10分。
)
1.数据结构,算法
2.先后,结合性
3.strcpy(s2,s1)
4.顺序,选择,循环
5.x++或++x
6.3
三、判断题(本题共10道小题,共10分。
)
1.错
2.错
3.对
4.错
5.错
6.错
7.错
8.对
9.错
10.对
四、程序填空(本题共5道小题,每题4分,共20分。
)
1.aabcd
2.s=15
3.4
4.*t++
5.'A',ch+1
五、编程题(本题共2道小题,共20分。
)
1.#defineN5
main()
{inta[N]={9,6,5,4,1},i,temp;
printf("\noriginalarray:
\n");
for(i=0;i printf("%4d",a[i]);
for(i=0;i {temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\nsortedarray:
\n");
for(i=0;i printf("%4d",a[i]);
}
2.#include"stdio.h"
#include"string.h"
#include"conio.h"
intfun(char*str,char*substr)
{inti,n=0,s=strlen(str);
for(i=0;i
if((str[i]==substr[0])&&(str[i+1]==substr[1]))
n++;
returnn;
}
main()
{
charstr[81],substr[3];
intn;clrscr();
printf("enter1:
");
gets(str);
printf("enter2:
");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
}