2022年河南科技学院公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);2、在C语言源程序中,一个变量代表【】。
3、结构化程序由________、________ 、________ 3种基本结构组成。
4、C语言中的标识符可分为关键字、_______和_______3类。
5、若有定义语句:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为_______6、若x=0123,则表达式(5+(int)(x))&(~2)的值是_______。
7、鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。
请填空。
for(x=0;x<=30;x++){y=30一x;if(_______)printf("%d,%d\n",x,y);}8、设有宏定义如下:#define MIN(x,y)(x)>(y)?(x):(y)#define T(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值为_______。
int a=1,b=3,c=5,s1,s2;s1=MIN(a=b,b-a);s2=T(a++,a*++b,a+b+c);9、设有以下宏定义:#define WIDTH80#define LENGTH(WIDTH+40)则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是_______。
10、下面程序段的运行结果是_______。
chara[]="12345",*p;int s=0;for(p=a;*p!=\0';p++)s=10*s+*p-'o';printf("%d\n",s);二、选择题11、下面4个选项中,是合法转义字符的选项是( )。
A.’\"B. '\ 'C. ' \018'D. '\\o''\\ ' ' \017' '\f' '\10l''\n' '\ " ' xab' ' xlf'12、若有代数式|x3+log10x|,则正确的C语言表达式是()A.fabs(x*3+log(x))B.abs(pow(x,3)+log(x))C.abs(pow(x,3.0)+log(x))D.yfabs(pow(x,3.0)+log(x))13、一个C程序的执行是从()A.本程序的main函数开始,到main函数结束B.本程序的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序的第一个函数开始,到本程序main函数结束14、以下叙述不正确的是( )A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面15、下面程序段(每行代码前面的数字表示行号)()。
1 float a[10]={0.0};2 int i;3 for(i=0;i<3;i++)scanf("%d",&a[i]);4 for(i=1;i<10;i++)a[0]=a[0]+a[i];5 printf("%f\n",a[o]);A.没有错误B.第1行有错误C.第3行有错误D.第5行有错误16、设x、y均为float型变量,则以下不合法的赋值语句()。
A.++x;B.yy=(x%2)/10;C.x*=y+8;D.x=y=0;17、设有以下定义:char*cc[2]={"1234","5678");则正确的叙述是()。
数组的两个元素中各自存放了字符串”1234”和"5678”的首地址数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址是指针变量,它指向含有两个数组元素的字符型一维数组数组元素的值分别是1234和567818、以下程序有语法性错误,有关错误原因的正确说法是()。
#include <stdio.h>int main(){int G=5,k;void prt_char();-----k=prt_char(G);---}A.语句void prt_char();有错,它是函数调用语句,不能用void说明B.变量名不能使用大写字母C.函数说明和函数调用语句之间有矛盾D.函数名不能使用下划线19、以下程序段( )。
x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行二次C.循环执行一次D.有语法错误20、以下正确的描述是()。
A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break 语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句21、以下程序的输出是()。
#include <stdio.h>int main(){int x=1;if(x=2)printf("OK");else if(x<2)printf("%d\n",x);else printf("Quit");return 0;}A.OKB.QuitC.1D.无输出结果22、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。
请选择填空。
( )#include<stdio.h>int main(){char s[80],c1,c2='';int i=0,num=0;gets(s);while(s[i]!='\o'){ c1=s[i];if(i==0)c2='';else c2=s[i-1];if(【】)num++;i++;printf("There are%d words.\n",num);return 0;}A.c1==′′&&c2==''B.cl!= ''&&c2==''C.c1==''&&c2!=''D.cl!=''&&c2!=''23、当运行以下程序时,从键盘输入:ab<回车>C<回车>def<回车>则下面程序的运行结果是()。
#include <stdio.h>#defineN6int main(){charc[N];int i=0;for(;i<N;c[i]=getchar(),i++);for(i=0;i<N;i++)putchar(c[i]);return 0;}A.abcdefB.aC.bD.abb c cc d def24、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。
#include<stdio.h>#include <math.h>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+y25、下面程序段的运行结果是()。
int n=0;while(n++<=2);printf("%d",n);A.2B.3C.4D.有语法错三、读程序填空26、以下printf语句中*号的作用是_______,输出结果是_______。
#include <stdio.h>int main(){inti=1;printf("##%*d\n",i,i);i++;printf("##%*d\n",i,i);i++;printf ("##%*d\n",i ,i );return 0;}27、已有定义float d1=3.5,d2=-3.5;执行以下语句后的输出结果是_______。
printf ("*d (1)=%e*d (2)=%.4e*d (3)=%10.4e*\n",dl ,dl ,d1); printf ("*d (4)=%e*d (5)=%.6e*d (6)=%-12.5e*\n",d2,d2,d2);28、以下程序是应用递归算法求某数a 的平方根,请填空。
求平方根的迭代公式如下:x1=12(x0+a x0)#include<stdio.h>#include <math.h>double mysqrt (double a ,double xo ){double x1,y ;x1=_______;if (fabs (x1-x0)>0.00001)y=mysqrt (_______);else y=x1;return y ;int main (){double x ;printf ("Enter x:");scanf ("%If",8.x );printf ("The sqrt of %f=%f\n",x ,mysqrt (x ,1.0));return(0);}29、以下程序可计算1门课程中10名学生成绩的平均分。
请填空。
#include <stdio.h>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);}30、下面程序的功能是从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案。