c语言程序设计期末试题B(含答案)

更新时间:2023-09-13 13:57:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(青海大学)c语言程序设计期末模拟试卷B

单项选择题(每小题1分,共10分)

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

A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是( )

#include main( ) {

int a = 1, b = 2, c = 3; printf(“%d”, c>b>a); }

A) 2 B) 1 C) 0 D) 3 3.以下正确的叙述是( )

A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句

D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误

4.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( A)scanf(\ B)scanf(\C)scanf(\ D)scanf(\5.若有以下程序段,

int c1=1,c2=2,c3; c3=1.0/c2*c1;

则执行后,c3中的值是( )

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

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

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,正确的输入是( ) 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) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 9.以下程序的输出结果是( )

#include 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的初始化,其中不正确的是( )

A)a[5]={\ B)a[5]={'A','B','C','D'} C)a[5]=\ D)a[5]=\二、填空题(每空2分,共32分)

1.结构化程序设计中的三种基本结构是 [1] 、 [2] 、 [3] 。 2.C程序的基本组成单位是 [4] 。

3.标识符的第一个字符必须是 [5] 或 [6] 。 4.实常数123.457的规范化指数表示形式是 [7] 。

5.表达式7/2的结果是 [8] 。表达式7%2的结果是 [9] 。 6.定义一个整型数组a[10],则下标最大的数组元素为 [10] 。

7.在函数的递归调用过程中,要使递归过程不是无限制进行下去,必须具有 [11] 。 8.C语言提供了 [12] 命令用来实现“文件包含”的操作。 9.已知:char c[ ]={“china”};将字符数组c中整个字符串一次输出的语句书写格式为 [13] 。 10.表达式4>3 && 7<5-!0的值为 [14] 。

11.按照变量在函数中作用域不同,可以将变量分为 [15] 和 [16] 。 三、计算题(要求写出步骤)(每题4分,共8分) 1. 设int a=12,求出表达式a+=a-=a*a运算后a的值. 2. 设a=2,b=3,x=3.5,y=2.5

求算术表达式(float)(b-a)/2+(int)x%(int)y的值 四、读下列程序,写出程序的运行结果(4×3=12)

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

char ch=‘A’;

printf(\ }

2. main( ) {

int a = 10;

printf(“%d ”, ++a); printf(“%d ”, a--);

}

3.main( ) { int t=1;

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

4. f(int *a, int b)

{b=b+*a; *a=*a+b;}

main( )

{

int x=2,y=4; int *p; p=&x; f(p,y);

printf(\,%d\ }

五、程序填空(每空2分,共14分)

1.下列程序段以函数swap( )调用的形式实现两个变量值的互换,请填空完善程序。 swap(int * m,int * n) { int temp;

temp= [1] ; [2] ; *n= [3] ; }

main( ) { int x,y;

scanf(“%d,%d”,&x,&y); swap( [4] ); 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; [5] ) { [6] ; s=s+m ; [7] ;} printf(“%d\\n”,s); }

六、编程题:(共24分)

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

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

total(n-1)+n+1 (n>1)

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

1 1 1 1 2 1 1 3 3 1

1 4 6 4 1

……

C语言模拟试卷二答案及评分标准 一、单项选择题(每小题1分)

1. A 2. C 3. D 4. A 5. B 6. D 7. D 8. A 9. C 10. D 二、填空题(每空2分)

1. 顺序结构、选择结构、循环结构。 2. 函数

3. 字母、下划线

4. 1.23457e2或1.23457E2 5. 3、1 6. a[9]

7. 使递归结束的条件 8. #include

9. printf(“%s”,c) 10. 0

11. 全局变量、局部变量

三、计算题(要求写出步骤)(每题4分) 1.

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

a+=-132 a=a+(-132) a=-132-132= -264 2. 1.0/2+3%2=0.5+1=1.5

四、读下列程序,写出程序的运行结果(每题3分)

1. 1. A,68 2. 2. 11 11 3. 3. 24 4. 4. 8,4

五、程序填空:(每空2分)

1.*m 2.*m=*n 3. temp 4. x,y 5. i=i+2 6. m=i*t 7. t=-t 六、编程题 1.

main() {

int i;

float t=1,s=0;

for(i=1;i<=50;i++) {

t=t*i; s=s+t; }

printf(\} 2.

total(int n) { int c;

if (n==1) c=1;

else c=total(n-1)+n+1; return(c); }

main() { int n;

scanf(“%d”,n);

printf(“%d”,total(n)); } 3.

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(\ }

printf(\ } }

本文来源:https://www.bwwdw.com/article/oihh.html

Top