您好,欢迎来到尔游网。
搜索
您的当前位置:首页2022年河套学院公共课《C语言》科目期末试卷A(有答案)

2022年河套学院公共课《C语言》科目期末试卷A(有答案)

来源:尔游网
2022年河套学院公共课《C语言》科目期末试卷A(有答案)

一、填空题

1、设x=10100011,若要通过x*y使x的高4位取反,低4位不变,则y的二进制数是_______。

2、C语言的源程序必须通过【 】和【 】后,才能被计算机执行。 3、C语言源程序的基本单位是________

4、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。

5、若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)后x的值为_______。 6、若有以下定义和语句: int*p[3],a[6],i; for(i=0;i<3;i++) p[i]=8&a[2*i];

则*p[0]引用的是a数组元素_______,*(p[1]+1)引用的是a数组元素_______。 7、下面程序段的运行结果是_______。 x=2;

do{printf(\"*\");x--;)while(!x==0);

8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。请填空。

_______;a=b;b=c;_______;

9、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为_______。

10、假设M为已经声明的符号常量,则定义一个具有M×M个元素的双精度型数组a,且所有元素初值为0的形式是_______。

二、选择题

11、已知各变量的类型说明如下: int k,a,b;

unsigned long w=5;

double x=1.42;则以下不正确的表达式是( )。 A.x%(-3) B.w+=-2

C.k=(a=2,b=3,a+B. D.a+=a-=(b=4)*(a=3) 12、表达式18/4*sqrt(4.0)/8值的数据类型为( ) A.int B.float C.double D.不确定

13、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是( )。 A.int a=b=c=5; B.int a,b,c=5;C.a=5,b=5,c=5;D.a=b=c=5; 14、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( )

A.scanf(\"%d%lx,%le\",&x,&y,&z); B.scanf(\"%2d*%d%1f\",&x,&y,&z); C.scanf(\"%x%*d%o”,&x,&y);

D.scanf(\"%x%0%6.2f\",&x,&y,&z);

15、若有说明:inta[3][4];,则对a数组元素的非法引用是( )。 A.a[o][2*1] B.a[1][3] C.a[4-2][ o] D.a[o][4] 16、一个C语言程序由( )。

A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 17、在下面的程序段中( )。

Int t,x;

for(t=1;t<=100;t++) {scanf(\"%d”,&x); if(x<0)continue; printf(\"%3d\",t); }

A.当x<0时整个循环结束 B.x≥0时什么也不输出

C.printf函数永远也不执行 D.最多允许输出100个非负整数 18、以下程序有语法性错误,有关错误原因的正确说法是( )。

#include int main() {int G=5,k; void prt_char(); -----

k=prt_char(G); ---

}

A.语句void prt_char();有错,它是函数调用语句,不能用void说明 B.变量名不能使用大写字母

C.函数说明和函数调用语句之间有矛盾 D.函数名不能使用下划线

19、若要对a进行++运算,则a应具有下面说明( )

A.int a[3][2];B.char*a[]={\"12\",\"ab\;C.char(*A.[3];D.int b[10],*a=b; 20、若有说明语句,则以下不正确的叙述是( )。

char a[]=\"It is mine\";char*p=\"It is mine\"; A.a+1表示的是字符t所在存储单元的地址 B.p指向另外的字符串时,字符串的长度不受 C.p变量中存放的地址值可以改变 D.a中只能存放10个字符

21、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。

#include #include float f(float,float); int main()

{floatx,y,z,sum;

scanf(\"%f%1%f\",8.x,&y,8.z); sum=f(【】)+f(z+y,z-y); printf(\"sum=%fNn\",sum); return(0); }

float f(float a,float B. {float value; value=a/b; return(value); }

A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y 22、下面程序的运行结果是( )。

#include int main()

{char ch[7]={\"12ab56\; int i,s=0; for(i=0;ch[i]>= '0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'o'; printf(\"%d\\n\",s); return0; }

A.1 B.1256 C.12ab56 D.15

23、下面程序段的运行结果是( )。

char a[7]=\"abcdef\"; char b[4]=\"ABC\"; strcpy(a,B.; printf(\"%c\",a[5]);

A.口 B.\\0 C.e D.f(其中口表示1个空格) 24、执行以下程序段后的输出是( )。 Int i=-1;

if(i<=0)printf(”****\\n\") else

printf(\"%%%%\\n\");

A.**** B.有语法错,不能正确执行 C.%%%%C D.%%%% 25、下面程序的运行结果是( )。 #include int main() {int y=10; do{y--;} while(--y);

printf(\"%d\\n\",y--); return 0; }

A)-1 B)1 C)8 D)0

三、读程序填空

26、已有定义int d=-2;执行以下语句后的输出结果是_______。

printf(\"*d(1)=%d*d(2)=%3d*d(3)=%-3d*\\n\",d,d,d); printf(\"*d(4)=%o*d(5)=%7o*d(6)=% 7o*\\n\",d,d,d); 27、以下程序的输出结果是_______。

#include int main() {int x=1,y=2;

printf(\"x=%dy=%d*sum*=%d\\n\",x,y,x+y); printf(\"10 Squared is:%d\\n\",10*10); return 0; }

28、以下程序的功能是:输入一个小写字母,将字母循环后移5个位置后输出。例如’a’变成’f’,w’变成b’。请填空。

#include int main() {char c; c=getchar();

if(c>='a'8&&.c<='u')【l】: else if(c>='v√8&8.c<='z)_______; putchar(c);

return 0; }

29、以下程序的运行结果是_______。

# include int main() { intx,y,z; x=3; y=3; z=x==y;

printf(\"z=%d\\n\ return 0; }

30、当运行以下程序时,从键盘输入“China#<回车>”,则下面程序的运行结果是_______。

#include int main()

{int vl=0,v2=0;char ch;

while((ch=getchar())!='#’) switch(ch) { case'a’: case'h': default:v1++; case′o':v2++;

printf(\"%d,%d\\n\",v1,v2); return 0; }

31、以下程序可计算1门课程中10名学生成绩的平均分。请填空。

#include

float average(float array[10]) {int i;float aver, sum=array[o];

for(i=1;_______;i++) sum+=_______; aver=sum/10; return(aver); }

int main()

{float score[10],aver;int i; printf(\"\\ninput 10 scores:\");

for(i=0;i<10;i++)scanf(\"%f\",&.score[i]); aver=_______;

printf(\"\\naverage score is%5.2f\\n\",aver); return(0); }

32、下面程序的功能是求矩阵a的两条对角线上的元素之和。请填空。

#include int main()

{int a[3][3]={1,3,6,7,9,11,14,15,17},s1=0,s2=0,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j)s1=s1+a[i][j]; for(i=0;i<3;i++) for(_______;_______;j--) if((i+j)==2)s2=s2+a[i][j]; printf(\"s1=%d,s2=%d\\n\",s1,s2);

return 0;

}

33、若有以下输入(口表示空格),则下面程序的运行结果是_______。

7□8口5口4口6口7口9口10口3口2口4口-1<回车> #include int main()

{int b[51],i,n=1,p,*q=b+1; scanf(\"%d\",q);

while(*q>-1){q++;n++;scanf(\"%d\",q);} p=1;

for(i=2;i<=n;i++) if(*(b+i)>*(b+p))p=i;

printf(\"p=%2d,b[%1d]=%3d\\n\",p,p,*(b+p)); return(0); }

四、编程题

34、编写程序实现功能:对于给定的一个百分制成绩,改用相应的五级分成绩表示。设:90分以上为A,80~分为B,70~79分为C,60~69分为D,60分以下为E(要求用switch语句实现)。

35、编写程序,统计d输入的命令行中第二个参数所包含的英文字符个数。

一、填空题

1、11110000

2、【1】编译【2】连接 3、函数

4、【1】float【2】double【3】char 5、0

6、【1】a[0]【2】a[3] 7、**

8、【1】t=a【2】c=t

9、【1】scanf(\"%d%f%f%c%c”,&a,&.b,8.c1,8.c2); 【2】3囗6.5囗12.6aA<回车> (注:答案中的囗代表空格) 10、double a[M][M]={0};

二、选择题

11、A 12、C 13、A 14、D 15、D

16、B

17、D 18、C 19、D 20、D 21、B 22、A 23、D 24、B 25、D

三、读程序填空

26、*d(1)=-2*d(2)=囗-2*d(3)=-2囗**d(4)=177776*d(5)=囗177776*d(6)=177776囗* (注:答案中的囗代表空格)

27、x=1 y=2*sum*=310 Squared is:100 28、【1】c=c+5【2】c=c-21 29、z=1 30、5,5

31、【1】i<10【2】array[i]【3】average(score) 32、【1】j=2【21j>=0 33、p=8,b[8]=10

四、编程题

34、#include int main()

{int score,temp,log; char grade; log=1; while(log)

{printf(\"enter score:\"); scanf(\"%d”,8.score); if((score>100)|l(score<0)) printf(\"\\n error,try again!\\n\"); else log=0;

if(score==100)temp=9;

else temp=(score-score%10)/10;switch(temp)

{case 0:case 1:case 2: case 3:case 4:

case 5: grade='E';break; case 6:grade='D';break; case 7:grade='C';break; case 8:grade='B';break; case 9:grade='A';

printf(\"score=%d,grade=%c\\n\",score,grade); return 0; }

35、#include #include

int main(int argc,char*argv[]) {char*str; int num=0; if(argc==2)

{str=argv[1]; while(*str)

if(isalpha(*str++))num++; printf(\"\\nThe count is:%d.\\n\",num); }

return 0; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务