试题1一、选择题:本题共 10 小题,满分 20 分。
1、以下选项中不能作为c语言合法常量的是a )
a)‘cd’ b)0.1e+6 c)“\a” d)‘\011’
2、以下不能正确表示代数式2ab/cd的c语言表达式是d )
a)2*a*b/c/d b)a*b/c/d*2 c)a/c/d*b*2 d)2*a*b/c*d
3、以下定义语句中正确的是b )
a)inta=b=0b)chara=65+1, b= ‘b’;
c)floata=1,*b=&a, c=&bd)doublea=0.0;b=1.1;
4、设有如下程序段。
char s[20]= bejing”, p;
p=s;则执行p=s;语句后,以下叙述正确的是a )
a)可以用*p表示s[0]
b)s数组中元素的个数和p所指字符串长度相等。
c)s和p都是指针变量。
d) 数组s中的内容和指针变量p中的内容相等。
5、执行以下程序段后,w的值为c )
int w=’a’,x=14,y=15;
w=((x||y)&&w<’a’))
a)-1 b)null c)1 d) 0
6、若定义:int a[2][3]=;以下描述正确的有 ( a )
a)*(a+1)为元素6的地址 b)*(a[1]+1)的值为2
c、*(a+1)+2的值为8 d)a[0]与a的值不相同。
7、‘\t’表示什么b )
a)字符串常数 b)标识符 c)变量 d)字符常量。
8、以下表达式取值正确的是d)
a)6>5结果为6 b)6&&5结果为7 c)6||5结果为7 d)6<5结果为0
9、若有定义语句:
double x[5]=,p=x; 错误引用x数组元素的是 ( b )
a)*p b)x[5] c)*(p+1d)*x
10、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是d
a、x++;printf(“%d”, x); b、n=++x; printf(“%d”, n);
c、++x; printf(“%d”, x); d、n=x++;printf(“%d”, n);
二、填空题:本题共 10 小题,满分 20 分。
1、判断一个字符ch是数字字符的表达式是 if((ch>=’0’)&ch<=’9
2、若n是一个常量,则int (*p)[n];表示定义一个含有n个元素的一位数组的指针变量,而int *p[n];表示含有n列的二维数组的指针变量。
3、若有定义:int m=5,y=2; 则计算表达式y+=y-=m*=y;后的y的值是 -16 。
4、c语言规定了以字符 ‘\0’ 作为字符串结束标志。
5、若有定义int x=3,y=2; floata=2.5,b=3.5; 则表达式(x+y)%2+(int)a/(int)b的值是 1 。
6、若有定义:int a[3][4]=,则初始化后,a[2][1]的值是 6 。
7、若有定义:char s=t\\\0will”; 则strlen(s)= 3 。
8、c语言规定,在一个源程序中,main函数的位置可以任意位置。
9、设变量a和b已定义为int型变量,若要通过scanf(“a=%d,b=%d”, a, &b );语句分别给a和b输入1和2,则正确的数据输入内容是 a=1,b=2
10、设a,b,c都是整型变量,如果a的值为1,b的值为2,则执行c=a++|b++;语句后,变量b的值是 2
三、应用题:本题共 5 小题,满分 25 分。
1、写出下列程序的运行结果:
#include <>
void main()
int i,j=4
for( i=j; i<=2*j; i++
switch( i%j )
#*2、写出下列程序的运行结果:
#include<>
int f(int m)
staticint n=0
n+=m;return n;
void main( )
intn=0;
printf("%d,",f(++n));
printf("%d", f(n++)
3、写出下列程序的运行结果:
#include <>
void exch(int t
t[0]=t[5];
void main()
intx[10]=,i=0;
while(i<=4)
for( i=0; i<5; i++ printf(“%d ”,x[i] )
printf(“”);
4、写出下列程序的运行结果:
#include <>
void main()
int a[3][4]=;
printf("%8d%8d",a, *a);
printf("%8d%8d",&a[0][0],a[0][0]);
printf("%8d%8d",a+1,*(a+1));
printf("%8d%8d",*a[1]+1),*a+2)+1));
假设数组a的首地址是2000,每个数组元素占4个字节,则运行结果为:2000 2000 2000 0 2016 2016 5 9
5、写出下列程序的运行结果:
#include <>
#include <>
typedef struct
char name[9
char sex;
int score[2];
stu;stu f(stu a)
stub=;
int i;
strcpy(
for (i=0; i<2; i++)
return a;
void main( )
stu c=,d;
d=f(c);
printf("%s,%c,%d,%d",printf("%s,%c,%d,%d", zhao,m,85,90
qian,f,95,92
四、程序设计题:本题共 3 小题,满分 35 分。
1、随机产生100个100~200之间的整数,编程实现分别统计十位数上0~9的数字个数。(10分)
#include<>
#include<>
#include<>
int main()
int a[100];
int i,count[100];
for(i=0;i<100;i++)
count[i]=0;
for(i=0;i<100;i++)
srand(time(0));
if(rand()>100&&rand()<200)
a[i]=rand();
for(i=0;i<100;i++)
if(a[i]/10%10==0)
count[0]++
else if(a[i]/10%10==1)
count[1]++
else if(a[i]/10%10==2)
count[2]++
else if(a[i]/10%10==3)
count[3]++
else if(a[i]/10%10==4)
count[4]++
else if(a[i]/10%10==5)
count[5]++
else if(a[i]/10%10==6)
count[6]++
else if(a[i]/10%10==7)
count[7]++
else if(a[i]/10%10==8)
《高级语言程序设计》模拟试题
1.输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。如 输入36和60,输出为 zdgys 12,zxgbs 180 2.输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。3.用递归调用的方法求n!如 输入为5,输出为5!120。4.按以下递归...
高级语言程序设计模拟试题
试题6一 单项选择题 本题共10小题,每小题2分,满分20分 1.下列运算符中,结合方向为 自右至左 的是 d a.算术运算符 b.左移运算符 c.赋值运算符 d.关系运算符 2.用以下语句从键盘接收两个整型值并赋值给整型变量a,b scanf d,d a,b 则以下输入正确的是 b a.5,6 回...
高级语言程序设计模拟试题
试题4一 单项选择题。本题共10小题,每小题2分,满分20分。1 下列运算符中优先级最低的是a a b c d 2 对for 表达式1 表达式3 可理解为b a for 表达式1 0表达式3b for 表达式1 1 表达式3 c for 表达式1 表达式1 表达式3 d for 表达式1 表达式3 ...