华北电力大学 _2008-2009_学年第 一_学期考试试卷(B)
课程名称 高级程序设计语言C 课程编号 专业班级 全校各专业 考试方式 闭卷 命题教师 郑玲 需要份数 试卷页数 5 主任签字 考核日期时间 1月9 送交日期 A B卷齐全 备 注 12月31 是 班级: 姓名: 学号:
一、选择题(每题 1 分,共 20 分)
1. 下列有关C程序的说法中,正确的是: 。
A) 一个C程序中只能有一个主函数且位置任意。 B) 一个C程序中可有多个主函数且位置任意。 C) 一个C程序中只能有一个主函数且位置固定。 D) 一个C程序中可以没有主函数。
2. 下列符号中,可以作为变量名的是 。
A)+a B)12345e C)a3B D)5e+0 3. 在C 语言中,下列类型属于构造类型的是 。
A)整型 B)指针类型 C)实型 D)结构体类型 4. 下面能正确表示变量a在区间[0,5]或(6,10)内的表达式为: 。
A)0<=a || a<=5 ||6
A)ch=‘\\0’ B)ch=‘a+b’ C)ch=‘7’+‘9’ D)ch=7+9 6. C语言中,运算对象必须是整型数的运算符是 。
A)% B)\\ C)% 和 \\ D)** 7. 表达式(double)(20/3)的值为 。
A)6 B)6.0 C)2 D)3 8. 下面有关for循环的正确描述是 。
A)for循环只能用于循环次数已经确定的情况。 B)for循环是先执行循环体语句,后判断表达式。 C)在for循环中,不能用break语句跳出循环体。
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来。 9. 能将高级语言编写的源程序转换为目标程序的是 。
A)链接程序 B)解释程序 C)编译程序 D)编辑程序 10. 为了表示关系x>=y>=z,应使用C语言表达式 。
A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z) 11. 以下if语句中语法错误的是 。
A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a);
else printf(“%f”,b);
C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b);
else printf(“%f”,b); else printf(“%f”,a);
12. 程序段如下:
int k=1;
while(!k==0) {k=k+1;printf(\说法正确的是 。
A)while循环执行2次 B)循环是无限循环
C)循环体语句一次也不执行 D)循环体语句执行一次
13. 循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句,其中表示循环
条件的是 。
A)表达式1 B)表达式2 C)表达式3 D)语句 14. 以下正确的函数定义形式是_ __。
A)double fun(int x,int y) B) double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y); 15. 以下不正确的描述是 。
A)使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成。 B)while循环是先判断表达式,后执行循环语句。
C)do-while和for循环均是先执行循环语句,后判断表达式。
D)while、do-while和for循环中的循环体均可以由复合语句完成。 16. 下列语句中,不正确的是_________。
A) int a[5]={1,2,3,4,5}; B) int a[5]={1,2,3}; C) int a[]={0,0,0,0,0}; D) int a[5]={0*5};
17. 若有以下定义: int a[10],*p=a; 则*(p+3)表示的是 。
A)元素a[3]的地址 B)元素a[3]的值 C)元素a[4]的地址 D)元素a[4]的值 18. 若有语句int *point , a =45; point = &a;下面均代表同一变量地址的一组选项是: 。
A)&a point *&a B)&*a &a *point C)point &point &a D) &a &*point point 19. 以下对结构体类型变量的定义中不正确的是 。
A) struct student B) struct student
{ int num; { int num;
float age; } ; float age; struct student std1; }std1; C) struct D) struct { int num; { int num;
float age; float age; } ; }std1; struct std1; 20. 以下能对二维数组a进行正确说明和初始化的语句是: 。
A)int a[ ][ ]={ 1, 0, 1, 2, 4, 5 };
B)int a[2][]={ { 3, 2, 1 }, { 5, 6, 7 } }; C)int a[][3]={ 3, 2, 1, 5, 6, 7 }; D)int a[2][ ]={ 1, 0, 1, 2, 4, 5 };
二、填空题(每空 2 分,共 20 分)
1. 一个C源程序中至少应包括一个 ① 。
2. 在一个C 源程序中,注释部分两侧的分界符分别为 ② 和 ③ 。 3. 定义int i=1;执行while(i++<5)后i的值为 ④ 。
4. 执行下列语句char s[4]=”DEF”,*p; p=s;后,*(p+3)的值是__⑤____。
5. 在C语言中,当do-while语句中的条件表达式的值为 ⑥ 时,结束该循环。 6. C语言有 ⑦ 种循环语句。
7. 在C语言中,二维数组元素在内存中的存放顺序是 ⑧ 。
8. int x=5,n=5;计算表达式x+=n++后x的值为_ ⑨ _,n的值为 ⑩ 。
三、读程序,写结果(每题4分,共20分)
1.写出下列程序的输出结果。 #include
void sub(int x, int y, int *z) { *z=y-x;} main( ) {int a,b,c;
sub(7,3,&a); sub(2,a,&b); sub(a,b,&c); printf(\}
3.写出下列程序的输出结果。 #include \void main( ) {int i,j;
for(i=1;i<=3;i++){ for(j=1;j<=i;j++) printf(\printf(\} }
5.写出下列程序的输出结果。 #include \void main()
{ int a[10]={1,2,3,-4,5,6,7,-8,9,10},s=0; for(int i=0;i<10;i++) { if (a[i]<0) continue; s+=a[i]; }
printf(\ }
2.写出下列程序的输出结果。 #include
{int i,a[10]={1,2,3,4,5,6,7,8,9,10},t; for(i=0;i<5;i++) { t=a[i];
a[i]=a[9-i]; a[9-i]=t; }
for(i=0;i<10;i++) printf(\}
4.写出下列程序的输出结果。 #include \void main( )
{ char a,b;
a='C'+ '4'- '1'; b='D'+ '3'- '2';
printf(\,b=%c\\n\}
四、程序填空题(每空 2 分,共 20 分) 1.打印以下杨辉三角形.(要求打印出10行)
#include
{ int a[10][10],i, j ; 1 for( i=0;i<10;i++) 1 1 { ① 1 2 1 ② } 1 3 3 1 for( i=2; i<10; i++ ) 1 4 6 4 1 for(j=1; j
{ for( j=0; j<=i; j++) printf(“]”,a[i][j]); printf(“\\n”);} }
2.用冒泡法对十个数由大到小排序。 #include
{ int a[11], i, j, t;
printf(“input 10 numbers: \\n”); for(i=1;i<11;i++) scanf(“%d”,&a[i]); for (j=1;j<=9;j++)
for(i=1; ④ ; i++) if ( ⑤___)
{t=a[i]; a[i]=a[i+1]; ⑥ __ ;} printf(“the sorted numbers: \\n”); for ( i=1; i<11; i++) printf(“%d”,a[i]); }
3.下面程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大者。请填空。 #include
{int n,count,max,t; count=max=0;
scanf(“%d”,&n); while(n) {t= ⑦ ;
if(t= =0) ++count;
else if(max n/=10; } printf(“count=%d,max=%d”,count,max); } 4.输入一个字符,如果是大写字母,则把其变成小写字母;如果是小写字母,则变成大写字母;其它字符不变。请填空。 #include { char ch; scanf(“%c”,&ch); if ( ⑨ ) ch=ch+32; else if(ch>=’a’&&ch<=‘z’) ⑩ ; printf(”%c\\n”,ch); } 五、编程题 ( 每题10分,共 20 分) 1.输入m和n(m≥n≥0)后,计算下列表达式的值并输出。 m! n!*(m-n)! 要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float。 2.编一程序,从键盘输入10个整数并保存到数组,要求找出最小的数和它的下标,然后把它和数组中最前面的元素对换位置。 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库华北电力大学 _2008-2009_学年第 一_学期C语言期末考试试卷(B)在线全文阅读。
相关推荐: