号学名姓级班业专系院2024-2024《C语言》期末课程考试试卷A
适用专业:
考试时间:120分钟 考试形式:闭卷 试卷总分:100分 一、选择题;(每题2分,共34分)
1.以下选项中可作为C语言合法常量的是( ) A)-80 B)-080 C)-8e1.0 D)-80.0e 2.以下选项中可作为C语言合法变量的是( ) A)int B)2_or C)Main D)a#b 3.数字字符0的ASCII值为48,若有以下程序 main()
{ char a='1',b='2'; printf(\ printf(\}
程序运行后的输出结果是( ) A)3,2 B)50,2 C)2,2 D)2,50 4.设int i=10,j=10;则“printf(“%d,%d\\n”,++i,j--);”输出结果是( ) A)10,10 B)10,9 C)11,9 D)11,10 5. 有以下程序 main()
{ int a,b,d=25; a=d/10%9; b=a&&(-1);
printf(\}
程序运行后的输出结果是( ) A)6,1 B)2,1 C)6,0 D)2,0
6.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a
{ int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf(\}
程序运行后的输出结果是( ) A)42 B)45 C)56 D)60 8. 以下While循环中,循环体执行的次数是( ) 。 k=1;
while(--k) k=10;
A. 一次也不执行 B.无限次 C. 10次 D. 1次
9.执行下面的程序时,从键盘上输入5和2,则输出结果是 ( ) main()
{int a,b,k;
Scanf(“%d%d”,&a,&b); k=a;
if(a
printf(“%d\\n”,k);}
A
5 B 3 C 2 D 0
10.已知:char c=’A’; int i=1,j; 执行语句j=!c&&i++; 则i和j的值是( ) A)1,1 B)1,0 C)2,1 D)2,0 11.有以下程序 a=1,b=2,c=2; While(a
{ t=a;a=b;b=t;c--;}
printf(“%d,%d,%d”,a,b,c); 程序运行后的输出结果是:( )
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1 12.以下对一维整型数组a的正确说明是
A) int a(10) B)int n=10,a[n]
C)int n;scanf(“%d”,&n);int a[n]; D)#define SIZE 10 int a[SIZE];
13.有以下程序 main()
{ int a=1,b; for(b=1;b<=10;b++) {
if(a>=8) break;
if(a%2==1) { a+=5; continue;} a-=3; }
printf(\}
程序运行后的输出结果是 ( ) A)3 B)4 C)5 D)6
14. 下面函数调用语句含有实参的个数为( )
fun((exp1,exp2),(exp3,exp4,exp5)) A)1 B)2 C)4 D)5
15.有以下程序
main( )
{ int i,s=0;
for(i=1;i<10;i+=2) s+=i+1; printf(“%d\\n”,s); }
程序执行后的输出结果是( ) A) 自然数1~9的累加和 B) 自然数1~10的累加和 C) 自然数1~9中的奇数之和 D) 自然数1~10中的偶数之和
16. 用数组名作为函数参数传递给函数,作为实际参数的数组名被处理为 A. 该数组的长度 B. 该数组的元素个数 C. 该数组中各元素的值 D. 该数组的首地址 17.有以下程序
#define N 20
fun(int a[],int n,int m) { int i,j;
for(i=m;i>=n;i--) a[i+1]=a[i]; }
main()
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9);
for(i=0;i<5;i++)
printf(\}
程序运行后的输出结果是 ( )
A)10234 B)12344 C)12334 D)12234
二、填空题(每空1.5分,共24分)
1.C语言程序是由 【1】构成的,其中有且只能有一个 【2】函数,该函数名为 【3】 。 2.设int a=8;则执行a-=a+=a*3后,a的值为 【4】 。 3.设a=3,b=4,c=5.则a+b>c&&b==c的值为 【5】 。
4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初使化后,得到a[1][2]的初值是 【6】 。得到a[2][1] 的初值是【7】 。
5.以下程序运行时若从键盘输入:10 20 30<回车>。输出结果是 【8】 #include
main()
{ int i=0,j=0,k=0;
scanf(\ printf(\}
6、若有定义float x=1.23456789;则printf(“%f”,x);的输出结果为 【9】 7.以下程序运行后的输出结果是 【10】 main()
{ int a,b,c
a=10;b=20;c=(a%b<1)||(a/b>1); printf(\}
8.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>.输出结果是 【11】 #include \main()
{ char a,b;
a=getchar(); scanf(\ a=a-'A'+'0'; b=b*2;
printf(\ %c\\n\}
9.以下程序运行后的输出结果是【12】 void swap(int x,int y) { int t;
t=x;x=y;y=t;
printf(\ %d \}
main()
{ int a=3,b=4; swap(a,b);
printf(\ %d\\n\}
10. 写出以下程序的执行结果 【13】 main()
{ int i,s=0;
int a[3][3]={1,2,9,3,4,8,5,6,7};
for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1]; printf(“%d”,s); }
11.写出以下程序的执行结果 【14】 #include \main() { int k;
int a[3][3]={1,2,3,4,5,6,7,8,9}; for(k=0;k<3;k++)
printf(“%d”,a[k][2-k]); }
12.写出以下程序的执行结果 【15】 #include \ int fun(int u,int v); main()
{ int a=24,b=16,c; c=fun(a,b);
printf(“%d\\n”,c); }
Int fun(int u,int v)
{ int w; while(v) { w=u%v; u=v; v=w; }
return u; }
13. 写出以下程序的执行结果___【16】_ 。
#include
for(i=1;i<=5;i++) switch(i%2)
{case 0: i++;printf(“#”);break; Case 1: i+=2;printf(“*”); Default:printf(“\\n”); }
}
三、程序填空题:(每空2分,共18分) 1.求数组中元素最大值,请填空。
#include
{ int i,max ,a[N]
for(i=1;i< 【1】 ;i++) scanf(“%d”,&a[i]); max= 【2】 for(i=1;i if(max 【3】 a[i]); printf(“max=%d\\n”,max);} 2.下面程序的功能是输出1—100当中,每位数的乘积大于每位数的和的数,请填空。 #include { int n,k=1,s=0,m; for(n=1;n<=100;n++) { k=1;s=0; 【4】 ; While( 【5】 ) { k*=m; S+=m; 【6】 ; } if(k>s) printf(“%d”,n);}} 3.main()函数利用exchange函数来交换main中的两个变量的值。 #include { float a=5,b=8; fun(a,b); } 【7】 fun( 【8】 ) {float temp; 【9】 ; x=y; y=temp; printf(“%f,%f\\n”,x,y)}