C_4练习题答案
一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)
- 定义如下变量和数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是(C)
for(i=0;i<;i++) printf(“%d”,x[i][2-1]);
A. 159
B. 147
C. 258
D. 369
- 函数调用:strcat(strepy(strl,str2),str3)的功能是(C)
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
- 设有如下定义:
. struct sk
{
int a;float b;}
data,*p;
若有p-&data;,则对data中的a成员的正确引用是(B).
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
- 设 intb-2:表达式b2/b>>1)的值是(B)
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
- inta,*p;p=&a;下列写法不等价的是(A)
A. *(p++)=a++
B. &*p=&a
C. (*p)+=a++
D. *&a=a
- 若有以下定义和语句:inta [10] = {1, 2, 3, 4. 5, 6, 7, 8, 9, 10}, *p=a;则不能表示a数组元素的表达式是(B)
A. p
B. a [10]
C. *a
D. a [p-a]
- C语言中,运作对象必须是整型数的运算符是(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
- 以下不正确的if语句是(D)
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.输出####
- 以下程序的输出结果是(B)
#include<stdio.h>
void main()
{
printf"%dn",NULL);}
A. 不确定的值(因变量无定义)
B.0
C. -1
D. 1
- 以下程序的输出结果是(B)
#include <stdio.h>
void main()
{char *s=“2468”;
int ql=0,q2=2;
printf(“%s%sin”,s+ql,s+q2);
}
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')
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!