c语言程序设计期末试题B

时间:2025-03-15

C语言程序设计 期末试题B

一.单选题(10分)

1.以下4组用户定义标识符中,全部合法的一组是( A )

A.total clu_1 sum

B.if -max turb

C.txt REAL 3COM

D.int k_2 _001

2.main(){ int a = 1, b = 2, c = 3; printf("%d\n", c>b>a); }的结果是( C )

A.2 B.1 C.0 D.3

3.以下正确的叙述是( D )

A.main函数必须位于文件的开头

B.C语言每行中只能写一条语句

C.C语言有输入、输出函数

D.对C程序进行编译预处理时,可检查宏定义的语法错误

4.int a, *pa=&a; 以下scanf语句中能正确为变量a读入数据的是( A )

A.scanf("%d", pa); B.scanf("%d", a);

C.scanf("%d", &pa); D.scanf("%d", *pa);

5.int c1=1, c2=2, c3; c3=1.0/c2*c1;则执行后,c3中的值是( A )

A.0 B.0.5 C.1 D.2

6.能正确表示逻辑关系a≥=10或a≤0的C语言表达式是( D )

A.a>=10 or a<=0 B.a>=0 | a<=10

C.a>=10 && a<=0 D.a>=10 || a<=0

7.将1、2、3、4分别赋给a、b、c、d,正确的输入是( D )

main(){ int a, b, c, d; scanf("%d,%d,%d%d", &a,&b,&c,&d); }

A.1 2 3 4 B.1 2 3,4 C.1,2,3,4 D.1,2,3 4

8.main(){ int k=0; while(k=1) k++; }则while循环执行的次数是( A )

A.无限次 B.有语法错,不能执行

C.一次也不执行 D.执行1次

9.以下程序的输出结果是( C )

main(){ int a = 5, b = 4, c = 6, d; printf("%d", d=a>b?(a>c?a:c): b); }

A.5 B.4 C.6 D.不确定

10.下面是对字符数组a的初始化,其中不正确的是( D )

A.char a[5]={"ABCD"}; B.char a[5]={ 'A', 'B', 'C', 'D' };

C.char a[5]=""; D.char a[5]="ABCDE";

二.填空题(32分)

1.结构化程序设计中的三种基本结构是

2.C程序的基本组成单位是

3.标识符的第1个字符必须是 字母 或 下划线 。

4.实常数123.457的规范化指数表示形式是。

5.表达式7/2的结果是,表达式7%2的结果是。

6.定义一个整型数组a[10],则下标最大的数组元素为

7.在函数的递归调用过程中,要使递归过程不是无限制进行下去,必须具有结束的条件 。

8.C语言提供了

9.已知char c[]={ "china" };将c中整个字符串一次输出的语句为

10.表达式4>3 && 7<5-!0的值为。

11.按照变量在函数中作用域不同,可以将变量分为 全局变量 和 局部变量 。

三.计算题(要求写出步骤)(8分)

1.int a=12,求表达式a+=a-=a*a运算后a的值。

a*a=12*12=144 a=a-144 a=12-144=-132

a+=-132 a=a+(-132) a=-132-132= -264

2.a=2, b=3, x=3.5, y=2.5;求算术表达式(float)(b-a)/2+(int)x%(int)y的值。

1.0/2+3%2=0.5+1=1.5

四.读程序,写结果(12分)

1.已知字符A的ACSII码值为65,写出以下语句的输出结果。

main(){ char ch='A'; printf("%c,%d", ch,ch+3); }

A,68

2.main(){ int a = 10; printf("%d ", ++a); printf("%d", a--); }

11 11

3.main()

{ int t=1;

for(i=1 ; i<5; i++) t=t*i;

printf("%d", t);

}

24

4.f(int *a, int b){ b=b+*a; *a=*a+b; }

main(){ int x=2, y=4; int *p=&x; f(p, y); printf("%d,%d", x,y); }

8,4

五.程序填空题(14分)

1.下列程序段以函数swap调用的形式实现两个变量值的互换,请填空完善程序。

swap(int * m, int * n)

{ int t;

;

}

main()

{ int x, y; scanf("%d,%d", &x,&y);

); printf("%d,%d", x,y);

}

2.下面程序是计算1-3+5-7+…… -99+101的值,请填空完善程序。

main()

{

int i, m, t=1, s=0;

for(i=1; i<=101; )

; s=s+m ; ; }

printf("%d\n", s);

}

六.编程题(24分)

1.编程求1!+2!+3!+……+50!的值。(6分)

main()

{

int i; float t=1, s=0;

for(i=1; i<=50; i++) { t=t*i; s=s+t; }

printf("s=%e\n", s);

}

2.用函数的递归调用方法求下列函数式的值(要求n由用户输入),递归公式为:(8分)

total(1) 1 (n 1) total(n) total(n-1) n 1 (n 1)

total(int n)

{ if (n==1) return 1;

else return total(n-1)+n+1;

}

main(){ int n; scanf("%d", &n); printf("%d\n", total(n)); }

3.编写程序输出下列形式的杨辉三角形的前10行。(10分)

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

main()

{

int a[10][10], i, j;

for(i=0; i<10; i++)

{ for(j=0; j<=i; j++)

{ if((j==0) || (i==j)) a[i][j]=1;

else a[i][j]=a[i-1][j-1] + a[i-1][j]; printf("%d ", a[i][j]); }

puts("");

}

}

…… 此处隐藏:686字,全部文档内容请下载后查看。喜欢就下载吧 ……
c语言程序设计期末试题B.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219