admin 管理员组文章数量: 887019
2024年2月21日发(作者:实例方法在访问本类成员变量时)
C语言程序设计试题及参考答案
C语言程序设计试题及答案(一)
1. 若有定义"float x=1.5;int a=1,b=3,c=2;",则正确的switch语句是() (2分)
(x)
{
case 1.0: printf("__ ");
case 2.0 printf("____ ");
}
((int)x)
{
case 1.0: printf("__ ");
case 2.0 printf("____ ");
}
(a+b)
{
case 1: printf("__ ");
case 2+1: printf("____ ");
}
(a+b)
{
case 1: printf("__ ")
case c: printf("____ ");
}
标准答案:C
2. 若有宏定义如下:
#define X 5
#define Y X+1
#define Z Y__X/2
则执行以下printf语句后,输出的结果是( )
int a; a=Y;
printf("%d ",Z);
printf("%d",--a); (2分)
A.7,6 B.12,6 C.12,5 D.7,5
标准答案:D
3. 下面的.符号常量定义中,正确的是 ( ) (2分)
A.#define PI 3.14; B.#include PI 3.14;
C.#define PI=3.14 D.#define PI 3.14
标准答案:D
4. 以下程序的输出结果是( )
int a, b;
void fun()
{ a=100; b=200; }
main()
{ int a=5, b=7;
fun();
printf("%d%d ", a,b);
} (2分)
A.100200 B.57 C.00 D.75
标准答案:D
5. 若有以下调用语句,则不正确的fun函数的首部是( )
main()
{ …
int a[50],n;
…
fun(n, a[9]);
…
} (2分)
fun(int m, int x[])
fun(int s, int h[41])
fun(int p, int __s)
fun(int n, int a)
标准答案:D
6. 以下程序的输出结果是( )
fun(int x, int y, int z)
{ z=x__x+y__y; }
main()
{ int a=31;
fun(5,2,a);
printf("%d",a);
} (2分)
A.0 B.29 C.31 D.无定值
标准答案:C
7. 以下只有在使用时才为该类型变量分配内存的存储类说明是( ) (2 和static 和register
分)
er和static 和register
标准答案:B
8. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( ) (2分)
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
标准答案:B
9. 以下函数值的类型是( )
fun ( float x )
{ float y;
y= 3__x-4;
return y;
} (2分)
B.不确定
标准答案:A
10. C语言规定函数的返回值的类型是由( ) (2 语句中表达式类型决定
B.调用该函数时的主调函数类型决定
分)
C.调用该函数时系统临时决定
D.在定义该函数时所指定的函数类型决定
标准答案:D
11. 若有说明:int i,j=7, __p=i; 则与i=j;等价的语句是( ) (2分)
A.i= __P; B.__p=__j; C.i=j; D.i=__ __p;
标准答案:B
12. 以下程序执行后a的值是( )
main()
{ int a,k=4,m=6,__p1=k,__p2=m;
a=p1==m;
printf("%d ",a);
} (2分)
A.4 B.1 C.0 D.a无定值
标准答案:D
13. 若有说明:long __p,a;则不能通过scanf语句正确给输入项读入数据的程序段是( ) (2分)
A.__p=a;scanf("%ld",p);
B.p=(long __)malloc(8);scanf("%ld",p);
("%ld",p=a);
("%ld",a);
标准答案:A
14. 以下程序的输出结果是( )
#include
int a[3][3]={1,2,3,4,5,6,7,8,9,},__p;
main()
{p=(int __)malloc(sizeof(int));
f(p,a);
printf("%d ",__p);
}
f(int __s,int p[][3])
{__s=p[1][1];} (2分)
A.1 B.4 C.7 D.5
标准答案:D
15. 设已有定义: char __st="how are you"; 下列程序段中不正确的是( )
(2分)
a[12], __p; strcpy(p=a+1,st[4]);
a[12]; strcpy(++a, st);
a[12]; strcpy(a, st);
a[12], __p; strcpy(p=a[1],st+2);
标准答案:B
18. 以下程序的输出结果是_____ B___。
main()
{
char cf[3][5]={"AAAA","BBB","CC"};
printf(""%s" ",ch[1]);
} (2分)
A."AAAA" B. "BBB" C."BBBCC" D."CC"
标准答案:B
19. 以下程序的输出结果是_______。
main()
{
int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i for(j=i;j printf("%d ",t);
} (2分)
A.3 B.4 C.1 D.9
标准答案:B
20. 在下列变量中,()不是局部变量 (2分)
er类 B.外部static类
类 D.函数形参
标准答案:B
C语言程序设计试题及答案(二)
一、单项选择题(20分,每题2分)
1.以下叙述中错误的是。C
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行时,数组元素的下标越界时,系统给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
2.以下叙述中,正确的是:C
A)continue和break语句只能用于循环体内
B)continue和break语句只能用于分支语句中
C)continue语句只能用于循环体内
D)continue语句只能用于分支语句中
3.执行下列程序段后,正确的结果是 C
char x[8] = {8,7,6,5,0,0}, __s;
s = x+1;
printf(“%dn”, s[2]);
A) n B) 0 C) 5 D) 6
4.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A
A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式
5.变量的指针,其含义是指该变量的 B
A)值 B)地址 C)名 D)一个标志
6.执行下列程序段后,正确的结果是A
int i=5;
while(i=1)
i--;
printf(“%d”,i)
A) 5 B) 0 C) 1 D) 无限循环
(i=0;i10;i++) A
if(i〈=5) break;
则循环结束后i的值为
A)0 B)1 C)5 D)10
8.执行下列程序段后,正确的结果是C
char x[8] = {8,7,6,5,0,0}, __s;
s = x+1;
printf(“%dn”, s[2]);
A) n B) 0 C) 5 D) 6
9.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:A
A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式
10.设有数组定义:char str[]=”China”;则下面的输出为B
printf(“%d”,strlen(str));
A)4 B)5 C)6 D)7
二、填空题(30分,每空2分)
1.C语言提供的三种逻辑运算符是_____、__||___和__!__。
2.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33回车,则输出结果是 1 B 。
#include stdio.h
main()
{
char a,b;
a=getchar();
scanf("%d",b);
a=a-A+0;
b=b__2;
printf("%c %cn",a,b);
}
3.以下程序运行后的输出结果是 4 3 5 。
main()
{
int a=3,b=4,c=5,t=99;
if(ba ac) { t=a;a=c;c=t;}
if(ac bc) {t=b;b=a;a=t;}
printf("%d %d %dn",a,b,c);
}
4.下面程序将字符数组a复制到字符数组b中。
main()
{
char a[]="I am a boy.",b[20];
int i;
for(i=___0____;a[i]!=0;i++)
{
____ b[i]=a[i]____;
}
_____ b[i]= 0____;
}
5.若有定义:double x[3][5];
则x数组行下标的上限是__0___,列下标的下限是__4___。
6.以下程序运行后的输出结果是 101 。
#define S(x) 4__(x)__(x)+1
main()
{
int i=2,j=3;
printf("%dn",S(i+j));
}
7.若有定义:double x[3][5];
则x数组行下标的上限是_0____,列下标的下限是_4___。
8.已知宏定义#define s 2+3
printf(”%d”,s__4);的输出结果是__14_____。
9.若有int a[3][2] = {{1},{3,2},{4,5}};,则a[1][1]的值是 2 。
三、写出程序的运行结果(30分,每题10分)
1.写出程序运行后的输出结果。
int f(int b[][4])
{
int i,j,s=0;
for(j=0;j4;j++)
{
i=j;
if(i2)
i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{
int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf("%dn",f(a));
}
16
2.写出程序运行结果
#include stdio.h
main()
{
int i=10,j=0;
do
{
j=j+i;
i--;
}while(i2);
printf("%dn",j);
}
52
3.写出程序运行后的输出结果。
int f(int b[][4])
{
int i,j,s=0;
for(j=0;j4;j++)
{
i=j;
if(i2)
i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{
int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf("%dn",f(a));
}
16
四、编程(完形填空)(20分,每题10分)
1.打印所有水仙花数,所谓水仙花数是指一个三位数,其各位数的立方和等于其本身。
include stdio.h
main()
{
int i,j,k,m;
for(i=100; i1000; i++)
{
j=i/100;
k= i/10 ;
m=i;
if( j__100+k__10+m==m__m__m+j__j__j+k__k__k )
printf("%dn", i);
}
}
2.以下程序计算某年某月有几天,1、3、5、7、8、10、12月有31天,4、6、9、11月有30天,2月为28天、闰年2月为29天。
main()
{
int yy,mm,day;
scanf(“%d%d”,yy,mm);
switch(_mm__)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12: day=__31_;
break;
case4:
case6:
case9:
case11: day=__30___;
break;
case2: if(((yy%4==0)_____(yy0!=0))__||__(yy@0==0))
day=29;
else
day=28;
break;
}
}
版权声明:本文标题:大学_C语言程序设计试题及参考答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1708520997h526627.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论