北京邮电大学
《C高级语言程序设计》期末考试试题(B卷)
(本试卷分为考题和答题两部分,答案全部写在答题纸上,写在考题上无效,答题纸不够可以添加附页)
一.单项选择题(在每小题的四个备选答案中,选出一个正确答案。每小题2分,共30分)
1.下列选项中,不是C语言保留关键字的是( )
2.A) switch B) printf C) int D) default
3.与十六进制数0xBB等值的十进制数是:______。
4.A)187 B)188 C)185 D)186
5.字符串"abcd"在内存中占用的字节数是( )
6.A) 4 B) 5 C) 10 D) 8
7.已有定义:int x=3,y=4,z=5;则表达式!((x+y)+z-1)&&(y+z/2)的值是( )
8.A) 6 B) 0 C) 2 D) 1
9.以下程序的输出结果是( )
10.void main(void)
11.{
12. int a=0,i;
13. for (i=1;i<5;i++){
14. switch(i){
15. case 0:
16. case 3: a+=2;
17. case 1:
18. case 2: a+=3;
19. default: a+=5;
20. }
21. }
22. printf("%d\n",a);
23.}
24.A) 13 B) 31 C) 10 D) 20
25.有以下程序:
26.void main(void)
27.{
28. int a=5,b=1;
29. do{ b=a+(a=a>0,a+b);}
30. while(a--);
31. printf("%d,%d", a, b);
32.} 程序运行后的输出结果是( )
33.A) -1,7 B) 0,3 C) 0,7 D) -1,3
34.以下说法中错误的是( )
35.A) C程序总是从main函数开始执行
36.B) 函数在程序中出现的先后位置与其被调用的先后顺序无关
37.C) 一个完整的C程序可以由若干个C源程序文件组成
38.D) main函数的定义必须出现在所有其它函数之前,否则将产生运行错误
39.函数调用时,下列说法中不正确的是( )
40.A) 若用值传递方式,则形式参数不予分配内存
41.B) 实际参数和形式参数可以同名
42.C) 主调函数和被调函数可以不在同一文件中
43.D) 函数间传递数据可以使用全局变量
44.以下叙述正确的是( )
45.A) 全局变量的作用域一定比局部变量的作用域范围大
46.B) 静态(static)类别变量的生存期贯穿于整个程序运行期间
47.C) 函数的形参都属于全局变量
48.D) 未在定义语句中赋初值的auto变量和static变量的初值都是随机值
49.有设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行或无意义的语句是( )。
50.A)k=*p1+*p2; B)p2=k; C)p1=p2; D)k=*p1 * (*p2);
51.以下选项中,不能正确执行的是( )
52.A) char s1[10]; s1="English";
53.B) char s2[]={'E', 'n', 'g', 'l', 'i', 's', 'h'};
54.C) char s3[20]="English";
55.D) char *s4="English\n";
56.若有以下定义和语句,则对数组w的一个整数元素的非法引用是( )
57.int w[2][3],(*pw)[3]; pw=w;
58.A) *(w[0]+2)
59.B) *pw[2]
60.C) pw[0][0]
61.D) *(pw[1]+2)
62.以下程序中的for循环执行的次数是( )
63.#include<stdio.h>
64.#define N 2
65.#define M N+1
66.#define NUM (M+1)*M/2
67.void main(void)
68.{ int i,n=0;
69. for(i=1;i<=NUM;i++){ n++; printf("%d", n);}
70. printf("\n");
71.}
72.A) 5 B) 6 C) 8 D) 9
73.有以下说明语句:
74.struct stu
75.{ int x; float y; char z;} student;
76.则下面的叙述中不正确的是( )
77.A) struct是结构体类型的关键字
78.B) student是结构体类型名
79.C) x,y,z都是结构体成员名
80.D) struct stu是结构体类型
81.计算机系统的标准输出文件是指( )
82.A) 键盘 B) 显示器 C) 软盘 D) 硬盘
二、填空题(每小题2分,共30分)
1.结构化程序设计的三种基本结构是【1】、【2】、【3】结构。
2.函数中的形参和调用时的实参都是数组名时,传递的是【4】;都是简单变量名时,传递的是【5】。
3.设有char *a="ABCD";,则printf("%s", a);的输出是【6】;而printf("%c",*a);的输出是【7】。
4.已知int a[ ] ={10,9,8,7,6},*p=a;
5.则*(p+1) * (p+2)[2]的值是【8】。
6.有以下程序:
7.#include<stdio.h>
8.void main(void)
9.{ int a,b,c=246;
10. a=c/100%9;
11. b=(-1)&&(-1);
12. printf("%d,%d\n",a,b);
13.}
14.输出结果为【9】
15.已知 float x, y, z;实现下达算式的C代码是【10】。
16.
17.(可用开平方函数sqrt,函数原型为:float sqrt(float)
18.下面程序的功能是判断输入的字符串是不是“回文”(按顺序读和倒序读都是一样的字符串
称为“回文”,如abcdcba)。请填空。
19.#include<stdio.h>
20.#include<string.h>
21.void main(void)
22.{ char ch[81],*p=ch,*q;
23. gets(p);
24. q=p+【11】;
25. while(p<q){
26. if(*p==*q){ p++; q--;}
27. else 【12】;
28. }
29. if(p<q) printf("不是回文\n");
30. else printf("是回文\n");
31.}
32.下面程序的功能是调用fun函数将x的值插入到a数组中下标为k的元素处。请填空:
33.#include<stdio.h>
34.void fun(int *a,int k,int x){
35. int i;
for(i=10;i>k;i--)
【13】= 【14】;
*(a+k)=x;
}
void main(void)
{
int a[11],i,k=5,x=16;
for(i=0;i<10;i++)scanf("%d",a+i);
fun(a,k,x);
for(i=0;i<11;i++)printf("%4d",【15】);
}
三、运行程序写结果(10分)
运行下列程序,写出运行结果。
#include<stdio.h>
void main(void)
{
char a[]=“ABCDEFGH”, b[]=“abCDefFh”;
char *p1, *p2;
int k;
p1=a; p2=b;
for (k=0; ; k++) {
if (*(p1+k)==0)
break;
if (*(p1+k)==*(p2+k))
printf(“%c”, *(p1+k));
else if (k<5)
printf(“*”);
else continue;
}
printf(“#\n”);
}
四、部分编程题(10分)。写一个函数,统计字符串中的元音字母的个数并作为返回值返回,参数为此字符串的首指针。函数声明为:int StrVowelCharNum(char *str); 主程序如下文:
int main(void)
{
char *string1 = “qwertyuiopasdfghjklzxcvbnm”;
printf(“元音字母的个数为:%d\n”, StrVowelCharNum(string1));
}
10种常用的程序设计语言五、编程题(每题10分,共20分)
1.编写程序,循环读取20个十进制整数写入一个数组,统计其中奇数的个数和偶数的个数,平均值以及方差(平均值和各个整数差的平均值)。
2.编写程序,读入一个包含‘0’到‘9’的数字字符串,将其中的所有的数字字符转换为对应的英文单词,如‘0’转化为“Zero”、‘1’转化为“One”、‘2’转化为“Two”等等。输出转化之后的字符串。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论