一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
A. 159
B. 147
C. 258
D. 369
A.将串str1复制到串st2中后再连接到串str3之后
B. 将串 strl 连接到串 str2之后再复制到串 str3 之后
C. 将串str2 复制到串 str1 中后再将串 str3 连接到串 strl 之后
D.将串str2连接到串str1之后再将串str1复制到串 str3中
3.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是(B)
A. x&&y
B. x>=y
C. xl++y&&y-z
D. x<y&&!zl1
A. (*pdata.a
B. (*p).a
C. p->data.a
D. p.data.a
5.执行下面的程序后,结果是(B)
#include <stdio.h>
void main() {
int a, b;
for (a = 1, b = 1; a <= 100; a++) {
if (b >= 20) {
break;
}
if (b % 3 == 1) {
b += 3;
continue;
}
printf("%d ", a);
}
b = 5;
}
A.2
B. 8
C.4
D. 10
A.2
B. 0
C. 4
D. 8
7,若调用一个函数,且此函数中没有retum语句,则以下正确的说法是(D)
A. 该函数没有返回值
B. 该函数返回若干个系统默认值
C.该函数能返回一个用户所希望的函数值
D.该函数返回一个不确定的值
8,下列四组选项中,均不是C语言关键字的选项是(A)
A. define IF type
B. getc char print
C. includecasescanf
D. whilegopow
A. *(p++)=a++
B. &*p=&a
C. (*p)+=a++
D. *&a=a
A. p
B. a [10]
C. *a
D. a [p-a]
A. %
B.
C. %和、
D.**
12.设有如下定义: int x=10,y=3z;则语句printf(“%din”,2-(x%yx/y));的输出结果是(D)
A. 1
B. 0
C. 4
D. 3
A. if(m>n);
B. if(m=n)m+=n;
C. if(m!=n) scanf(“%d”, &m); else
scanf(“%d”, &n);
D. if(m=n)&&(n!=0) n+=m;
14,设有说明int*ptr[M];其中的标识符ptr是(D)
A. M 个指向整型变量的指针
B.指向M个整型变量的函数指针
c.一个指向具有M个整型元素的一维数组的指针
D.具有M个指针元素的一维指针数组名,每个元素都只能指向整型变量
15.设有语句: “int a=1, b=2, *pl=&a, *p2=&b;”,则使指针pi指向变量b的赋值语句是(C)
A. pl=*p2
B. *pl=p2
C. pl=p2
D. *pl=*p2
16,有如下程序
#include <stdio.h>
void main{
int n[5]={0,0,0},i,k=2;
for(i=0;i<k;i++) n[i]=n[i]+1;
printf(“%dn”,n[k]);
}
该程序的输出结果是(D)
A. 不确定的值
B. 2
C. 1
D. 0
17有以下程序,执行后输出结果是(B )
#inolude <stdio.h>
void main{
int x[8]=(8,7,6,5,0,0},*s;
s=x+3;
printf(“%dn”,s[2]);
}
A. 随机值
B.0
C.5
D.6
18.下面的程序的输出结果是(D)
#include <sidio.b>
void main()
{
int x=3,y=0,z=0
if(x=y+z)printf(“*”);
else printf(“# # # #”);
}
A. 有语法错误不能通过编译
B.输出
C.可以通过编译,但是不能通过连接,因而不能运行
D.输出####
A. 不确定的值(因变量无定义)
B.0
C. -1
D. 1
A. 26
B. 246868
C.输出项不合法
D. 存放字符的地址值
二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结果填写在答题纸的相应位置上。)
4,5
//从键盘输入china
#include <stdio.h>
int main() {
int v1 = 0, v2 = 0;
char ch;
while ((ch = getchar()) != '\n')