c语言程序设计期末试题B
时间:2025-03-15
时间: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语言程序设计期末试题A
下一篇:ADAMS中的动平衡仿真分析