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

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

来源:爱go旅游网
2022年河南工业大学公共课《C语言》科目期末试卷A(有答案)

一、填空题

1、请读程序段: int a=1,b=2;

if(a&b)printf(\"***\\n\"); else printf(\"$$ $\\n\"); 以上程序段的输出结果是_______。

2、结构化程序由________、________ 、________ 3种基本结构组成。 3、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。

4、在C语言中,8作为双目运算符时表示的是_______,而作为单目运算符时表示的是_______。

5、表达式pow(2.8,sqrt(double(x))值的数据类型为_______。 6、以下程序段通过移动指针变量m,将如图9-5所示连续动态存储单元的值,从第一个元素起依次输出到终端屏幕。请填空。(假设程序段中的所有变量均已正确说明。)

for(m=q;m-q<10;m++)printf(\"%d,\",_______);printf(\"\\n\"); 7、下面程序段中循环体的执行次数是_______。

a=10;b=0;

do{b+=2;a-=2+b;}while(a>=0);

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、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。

二、选择题

11、下面正确的字符常量是( ) A.\"c\" B. \"\\\\\" C. 'w' D. \"

12、下面4个选项中,是不合法的转义字符的选项是( ) A.'\\\"' B.'\\1011 ' C.'\\0ll' D.'\\abe'

\\\\ '\\' '\\f' '\\0ll' \\xf' ' \\a' '\\]' 'xlf'

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、以下针对scanf函数的叙述中,正确的是( )。 A.输入项可以为一实型常量,如scanf(\"%f\",3.5);

B.只有格式控制,没有输入项,也能进行正确输入,如scanf(\"a=%d,b=%d\"); C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\"%4.2f\",&f);

D.当输入数据时,必须指明变量的地址,如scanf(\"%f\",&f); 15、若有说明:inta[3][4];,则对a数组元素的非法引用是( )。 A.a[o][2*1] B.a[1][3] C.a[4-2][ o] D.a[o][4] 16、以下叙述不正确的是( )

A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数 C.C程序的基本组成单位是函数

D.在C程序中,注释说明只能位于一条语句的后面 17、以下描述中正确的是( )

A.while、do-while、for循环中的循环体语句都至少被执行一次 B.do-while循环中,while(表达式)后面的分号可以省略

C.while循环体中,一定要有能使while后面表达式的值变为“假”的操作 D.do-while 循环中,根据情况可以省略 while

18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是( ) A.地址传递 B.单向值传递

C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 19、下面程序段的运行结果是( )。 char*s=\"abcde\";

s+=2;printf(\"%d',s);

A.cde B.字符c C.字符c的地址 D.无确定的输出结果

20、设char*s=\"\a\\017bc”;则指针变量s指向的字符串所占的字节数( ) A.9 B.5 C.6 D.7

21、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary的作用是应用折半查找法从存有10个有序整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请选择填空。

int binary(int a[10],int m) {int low=0,high=9,mid; while(low<=high) {mid=(low+high)/2; if(ma[mid])【】; else return(miD.; return(一1); }

A.high=mid-1 B.low=mid+1 C.high=mid+1 D.low=mid-1 22、对两个数组a和b进行如下初始化:

char a[]=\"ABCDEF\";charb[]={'A','B','C','D','E','F'};则以下叙述正确的是( )。

A.a与b数组完全相同 B.a与b长度相同 C.a和b中都存放字符串 D.a的长度比b长

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

#include int main()

{chara[]=\"morming\",t;int i,j=0; for(i=1;i<7;i++) if(a[j]A)mogninr B)mo C)morning D)mornin 24、以下程序的输出是( )。

#include int main()

{int a=100,x=10,y=20,okl=5,ok2=0; if(xif(ok2)a=10;

a=-1;

printf(\"%d\\n\",A.; return 0; }

A.1 B.0 C.-1 D.值不确定 25、下面程序段的运行结果是( )。

int n=0;while(n++<=2);printf(\"%d\",n); A.2 B.3 C.4 D.有语法错

三、读程序填空

26、以下程序的输出结果为_______。 #include int main() {short i; i=一4;

printf(\"\\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\\n\",i,i,i,i); return 0;

}

27、以下程序的输出结果为_______.

#include int main()

{printf(\"*%f,%4.3f*\\n\",3.14,3.1415);

return0; }

28、若运行以下程序时输入:35/<回车>,则程序的运行结果是_______。

#include int main() {float x,y; char o; double r;

scanf(\"%f%f%c\",&x,&y,&o); switch(o)

{case'+':r=x+y;break; case'-':r=x-y;break; case'*':r=x*y;break; case'/':r=x/y;break; printf(\"%f\",r); return 0; }

29、某服装店经营套服且单件出售。若一次购买不少于50套,则每套80元;若不足50套,则每套90元;只买上衣每件60元;只买裤子每条45元。以下程序的功能是读入所买上衣c和裤子t的件数,计算应付款数m。请填空。

#include int main()

{int c,t,m;

printf(\"input the number of coat and trousers you want to buy:\\n\"); scanf(\"%d%d\",&c,&t); if(_______)

if(c>=50)m=c*80;else m=c*90; else if(_______)

if(t>=50)m=t*80+(c-t)*60; else m=t*90+(c-t)*60; else if(_______)m=c*80+(t-c)*45; else m=c*90+(t-c)*45; printf(\"%d\",m); return 0 }

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

#include int main()

{int a,b,m=1,n=1; scanf(\"%d%d”,&a,&b); do

{if(a>0){m=2*n;b++;}

else{n=m+n;a+=2;b++;} }while(a==b);

printf(\"m=%d n=%d\",m,n); return 0; }

31、已定义一个含有30个元素的数组s,函数favl的功能是按顺序分别赋予各元素从2开始的偶数,函数fav2则按顺序每5个元素求一个平均值,并将该值存放在数组w中。请填空。

#include #define SIZE30 void favl(float s[])

{int i;float k=2.0;for(i=0;ivoid fav2(float s[],float w[]) {float sum;int k,i; sum=0.0;

for(k=0,i=0;i{w[k]=sum/5; _______;k++; }

int main()

{float s[SIZE],w[SIZE/5];

int i;favl(s);for(i=0;ifor(i=0;i32、有10个字符串。下面程序的功能是在每个字符串中找出最大字符,并按一一对应的顺序放入一维数组a中,即第i个字符串中的最大字符放入a[i]中,输出每个字符串中的最大字符。请填空。

#include int main()

{char s[10][20];int a[10],i,j; for(i=0;i<10;i++)gets(s[i]); for(i=0;i<10;i++) {_______;

for(j=1;s[i][j]!=\\0';j++) if(a[i]for(i=0;i<10;i++)printf(\"%d%c\",i,a[i]); return 0; }

33、下面程序的功能是将字符串b复制到字符串a。请填空。 #include void s(char*s,char*t) {int i=0;

while(_______)_______; }

int main() {chara[20],b[10]; scanf(\"%s\",b); s(_______); puts(a); return(0); }

四、编程题

34、已有变量定义和函数调用语句int x=57;isprime(x);函数isprime()用来判断一个整型数a是否为素数;若是素数,则函数返回1,否则返回0。请编写isprime函数。

int isprime(int a) { }

35、编写程序实现功能:输入整数a和b,若a2+b2>100,则输出a2+b2百位以上数字,否则直接输出a2+b2的和

参考答案

一、填空题

1、$$$

2、【1】顺序结构【2】选择结构【3】循环结构 3、【1】scanf【2】printf 4、【1】按位与【2】地址与 5、双精度型(或double型) 6、*m 7、3

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、【1】0【2】6

二、选择题

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

16、D

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

三、读程序填空

26、i:dec=-4,oct=177774,hex=fffc,unsigned=65532 27、*3.140000,3.142* 28、8.#

29、【1】c==t【2】c>1【3】c>=50 30、m=4 n=2

31、【1】s[i]=k【2】sum=0 32、【1】a[i]=s[i][o]【2】a[i]=s[i][]

33、【1】(s[]=t[i])!='\\o'【2】i++【3】a,b

四、编程题

34、int isprime(int a) {int i;

for(i=2;i35、#include int main() {int a,b,x,y;

scanf(\"%d%d\",&a,&.b); x=a*a+b*b; if(x>100)

{y=x/100;printf(\"%d\",y);} else printf(\"%d\",a+b); return 0 }

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

Copyright © 2019- igat.cn 版权所有

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

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