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

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

来源:爱站旅游
2022年武昌工学院公共课《C语言》科目期末试卷A(有答案)

一、填空题

1、设x的二进制数是11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是_______。

2、C语言的源程序必须通过【 】和【 】后,才能被计算机执行。 3、在C语言源程序中,一个变量代表【 】。

4、若x和n均是int型变量,且x和n的初值均为5,则执行表达式x+=n++后x的值为_______,n的值为_______。

5、在C语言中,用“\\”开头的字符序列称为转义字符。转义字符“\\n”的功能是_______;转义字符“\\r”的功能是_______。

6、函数process是一个可对两个整型数a和b进行计算的通用函数;函数max()可求这两个数中的较大者,函数min()可求它们中的较小者。已有调用语句process(a,b,max);和process(a,b,min);。请填空。

void process(_______) {int result; result=(*fun)(x,y); printf(\"%d\\n\ }

7、下面程序段是找出整数的所有因子。请填空。

scanf(\"%d\",&x); i=1;for(;_______;)

{if(x%i==0)printf(\"%3d\",i); i++;

}

8、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。请填空。

a+=_______;b=a-_______;a-=_______;

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

10、字符串\"ab\\n\\\\012\\\\\\\"”的长度是_______。

二、选择题

11、若有说明语句:charc='\\72';则变量c( )。 A.包含1个字符 B.包含2个字符

C.包含3个字符 D.说明不合法,c的值不确定

12、设有说明语句:int k=7,x=12;则以下能使值为3的表达式是( )。 A..x%=(k%=5) B..x%=(k-k%5) C..x%=k-k%5 D..(x%=k)-(k%=5)

13、有定义语句int a,b;,若要通过语句scanf(\"%d,%d”,&a,&B.;使变量a得到数值6,变量b得到数值5,下面输入形式中错误的是( )。(注:口代表空格)

A.6,5<回车> B.6,囗囗5<回车> C.65<回车> D.6,<回车>5<回车>

14、已有如下定义和输入语句,若要求al,a2,c1,c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是。(注:口表示空格) int a1,a2;

char c1,c2;

scanf(\"%d%c%d%c”, &a1,&c1,&a2,&c2); A.10A□20B<回车> B.10□A□20□B<回车> C.10A□20B<回车> D.10A20□B<回车>

15、下面是对数组s的初始化,其中错误的语句是( )。 A.char s[5]={\"abc\; B.chars[5]={'a','b','c'}; C.chars[5]=\"\"; D.char s[5]=\"abcde\"; 16、一个C语言程序由( )。

A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成

17、执行语句for(i=1;i++<4;);后变量i的值是( )。 A.3 B.4 C.5 D.不定

18、若用数组名作为函数调用的实参,则传递给形参的是( ) A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数

19、以下与库函数strcpy(char*p1,char*p2)功能不相等的程序段是(A) void strcpyl(char xpl,char*p2)

{while((*p1++=*p2++)!=\\0');} B)void strcpy1(char *pl,char *p2)

{while((*pl=*p2)!=\\0){p1++;p2++;}} C)void strcpy1(char *pl,char *p2)

)。 {while(*p2)*p1++=*p2++;} D)void trcpyl(char *p1,char *p2)

{while((*pl++=*p2++);)*p='\\0';}

20、下面能正确进行字符串赋值操作的是( )。

A.char s[5]={\"ABCDE'); B.char s[5]={'A','B','C','D','E'}; C.char*s;s=\"ABCDE\"; D.char*s;scanf(\"%s\",s); 21、以下程序的正确运行结果是( )。

#include void num()

{extern int x,y;int a=15,b=10; x=a-b;y=a+b; int x,y; int main() {int a=7,b=5; x=a+b;y=a-b; num();

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

A.12,2 B.不确定 C.5,25 D.1,12

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

#include int main()

{char str[]=\"SSSWLIA\",c;int k; for(k=2;(c=str[k])!=\\o';k++) {switch(C.

{case'I':++k;break; case'L':continue;

default:putchar(C.;continue; putchar('*’); }

return 0; }

A.SSW* B.SW* C.SW*A D.SW

23、下面程序的功能是将字符串s中所有的字符c删除。请选择填空(#include int main() {char s[80];inti,j; gets(s);

for(i=j=0;s[i]!= '\\o';i++) if(s[i]!='c)[ ]; s[j]='\\o';

)。

puts(s); return 0; }

A)s[j++]=s[i] B)s[++j]=s[i] C)s[j]=s[];j++ D)s[j]=s[i] 24、若w、x、y、z、m均为int型变量,则执行下面语句后的m值是( )。

w=1;x=2;y=3;z=4: m=(wA.1 B.2 C.3 D.4

25、有一堆零件(100~200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件的总数,请选择填空( )。

# include int main() { int i;

for(i=100;i<200;i++) if((i-2)%4==0) if(!((i-3)%7)) if([ ])

printf(\"%d\

return 0;

}

A)i%9=5 B)i%9!=5 C)(i-5)%9!=0 D)i%9==5

三、读程序填空

26、以下程序的输出结果是_______。

#include int main() {float a=123.456; double b=8765.4567; printf(\"(1)%f\\n\",a); printf(\"(2)%14.3f\\n\",a); printf(\"(3)%6.4f\\n\",a); printf(\"(4)%lf\\n\",b); printf(\"(5)%14.3lf\\n\",b); printf(\"(6)%8.4lf\\n\",b); printf(\"(7)%.4f\\n\",b); return 0; }

27、若要求下列程序的输出结果为8.00,则[]中应填入的是_______。

#include int main() {int k=2,m=5;

float s,x=1.2,y=[]; s=2/3+k*y/x+m/2; printf(\"%4.2f\\n\",s); return 0; }

28、下面程序的功能是:根据表4-6中给定的函数关系,对输入的每个x值,计算出相应的y值。请填空。

函数关系

x 𝑥<0 0<𝑥≤10 10<𝑥≤20 20<𝑥≤40 # include int main() { int x,c,m; float y; scanf(\"%d\ if(______) c=-1; else c=(______); switch(c)

{ case-1:y=0; break; case 0:y=x; break; case 1:y=10; break;

y 0 x 10 -0.5x+20 case 2:

case3: y=-0.5*x+20; break; default:y=-2;

if(______) printf(\"y=%f\ else printf(\"error\\n\"); return 0; }

29、以下程序的输出结果是_______。

#include int main()

{intx,y;x=5;switch(x) {case1: case2: case3:

case 4:printf(\"x<5\\n\"); case 5:printf(\"x=5\\n\",x);

default:printf(\"The value of x is unknown.\\n\"); }

return0; }

30、下面程序段的运行结果是_______。

i=1;a=0;s=1;

do{a=a+s*i;s=-s;i++;}while(i<=10); printf(\"a=%d\",a);

31、下面函数func的功能是_______。

#include #include #include long func(long num) {long k=1;

num=labs(num); do

{k*=num%10; num/=10; }while(num); return(k); }

int main() {long n;

printf(\"\\nPlease enter a number:\"); scanf(\"%ld\",&.n);

printf(\"\\nThe product of its digits is%ld.\",func(n));

return(0); }

32、设数组a中的元素均为正整数,以下程序是求a中偶数的个数和偶数的平均值。请填空。

#include int main()

{int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; float ave;

for(k=s=i=0;i<10;i++) {if(a[i]%2!=0)_______; s+=_______; k++; }

if(k!=0)

{ave=s/k;printf(\"%d,%f\\n\",k,ave);} return 0; }

33、下面程序的功能是判断输入的字符串是否是“回文”字符串称为“回文”,如level)。请填空。

#include #include

(顺读和倒读都一样的int main()

{chars[81],*pl,*p2; int n; gets(s); n=strlen(s); pl=s;p2=_______; while(_______) {if(*pl!=*p2)break; else{pl++;[3];} if(pl四、编程题

34、编写程序实现功能:输入一个复数,输出其共扼复数。例如,输入2+3i<回车>时,输出2-3i;输入2-3i<回车>时,输出2+3i。

35、试利用结构体类型编制一个程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。

参考答案

一、填空题

1、00001111

2、【1】编译【2】连接 3、内存中的一个存储单元 4、【1】10【2】6 5、【1】换行

6、int x,int y,int(*fun)(int,int) 7、i<=x

8、【1】b【2】b【3】b

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

10、9

二、选择题

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

16、B

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

三、读程序填空

26、(1)123.456000 (2)口口口口口口口123.457 (3)123.4560 (4)8765.456700

(5)口口口口口口8765.457 (6)8765.4567 (7)8765.4567 27、3.6 28、**1** **3**

29、x=5

The value of x is unknown. 30、a=-5

31、计算整数num的各位数字之积。 32、【1】continue【2】a[i] 33、【1】s+n-1【2】pl四、编程题

34、#include int main() { int a,b; char symbol;

printf(\"Please enter:\");

scanf(\"%d%c% di\\n\ printf(\"Original value:%d%c% di\\n\ if(symbol=='-') symbol='+'; else symbol='-';

printf(\"New value:%d%c% di\\n\ return 0; }

35、#include

int main()

{struct study int mid; int end; int average;

}math;

scanf(\"%d%d\",&math.mid,&.math.end); math.average=(math.mid+math.end)/2; printf(\"average=%d\\n\",math.average); return 0; }

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

Copyright © 2019- azee.cn 版权所有

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

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