您好,欢迎来到智榕旅游。
搜索
您的当前位置:首页2022年湖南工程学院应用技术学院公共课《C语言》科目期末试卷A(有答案)

2022年湖南工程学院应用技术学院公共课《C语言》科目期末试卷A(有答案)

来源:智榕旅游
2022年湖南工程学院应用技术学院公共课《C语言》科目期末试卷

A(有答案)

一、填空题

1、请读程序段: unsigned a=16;

printf(\"%d,%d,%d\\n\",a>>2,a=a>>2,a);以上程序段的输出结果是_______。

2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。

3、C语言源程序文件的后缀是 ;经过编译后,生成文件的后缀是 ;经过连接后,生成文件的后缀是

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

5、C语言中的标识符可分为关键字、_______和_______3类。

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、下面程序段的运行结果是_______。

x=2;

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

8、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。

struct s{char data; _______ }node;

9、设有如下结构体说明:

struct ST {int a;float b; struct ST*c; doublex[3];

}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。 _______

10、下面程序段的运行结果是_______。 int i=5;char c[6]=\"abcd\"; do{c[i]=c[i-1];}while(--i>0); puts(c);

二、选择题

11、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )。

A.int B.float C.double D.不确定 12、以下不正确的叙述是( )。 A.在C程序中,逗号运算符的优先级最低 B.在C程序中,APH和aph是两个不同的变量

C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变

D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值

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

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

D.当输入数据时,必须指明变量的地址,如scanf(\"%f\",&f);

15、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为。(假设a[0][0]位于数组的第一个位置上)( )

A.i*m+j B.j*m+i C.i*m+j-1 D.i*m+j+1

16、以下叙述正确的是

A.在C程序中,main函数必须位于程序的最前面 B.C程序的每行中只能写一条语句 C.C语言本身没有输入输出语句

D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误 17、若有如下语句:

int x=3;

do {printf(\"%d\\n\",x-=2);}while(!(--x)); 上面程序段( )。

A.输出1 B.输出1和-2 C.输出3和0 D.是死循环 18、以下程序有语法性错误,有关错误原因的正确说法是( )。

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

k=prt_char(G); ---

}

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

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

19、若有以下定义,则数值不为3的表达式是( )。 int x[10]={0,1,2,3,4,5,6,7,8,9},*p1; A.x[3] B.p1=x+3,*p1++ C.pl=x+2,*(p1++) D.pl=x+2,*++pl 20、设有以下程序段:

char str[4][10]={first\",\"second\",\"third\",\"fourth\"), *strp[4];int n; for(n=0;n<4;n++) strp[n]=str[n];

若k为int型变量且0≤k<4,则对字符串的不正确引用是( )。 A.strp B.str[k] C.strp[k] D.*strp

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+y22、当运行以下程序时,从键盘输入:

ab<回车> C<回车> def<回车>

则下面程序的运行结果是( )。 #include #defineN6 int main() {charc[N]; int i=0;

for(;iA.abcdef B.a C.b D.ab

b c cc d d e f

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

int a[6],i;

for(i=1;i<6;i++)

{a[i]=9*(i-2+4*(i>3))%5; printf(\"%3d\; }

A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 024、以下程序( )。

#include int main()

{int a=5,b=0,c=0; if(a=b+C.printf(\"***\\n\"); else printf(\"$$$\\n\"); return 0; }

A.有语法错不能通过编译 B.可以通过编译但不能通过连接 C.输出*** D.输出$$$

25、下面程序是输出一个正整数等差数列的前10项,此数列前4项之和及之积分别是26和880,请选择填空( )。

#include int main()

{int a,d,i,s,f,x; for(a=1;a<30;a++)

for(d=1;【1】;d++) {s=0;f=1;x=a; for(i=1;i<=4;i++) {s=s+x; f=f*x; x=x+d; }

if(s==268&&f==880) for(i=0;i<10;i++)

printf(\"%3d\",a+(i+1)*D.: }

return 0; }

A.d<=a B.空 C.d<=5 D.d三、读程序填空

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

#include int main() {int a=325;

double x=3.1415926;

printf(\"a=%+06dx=%+e\\n\",a,x); return 0; }

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

#include int main() {int a=252;

printf(\"a=%oa=%#o\\n\",a,a); printf(\"a=%xa=%#x\\n\",a,a);

return 0; }

28、为了使以下程序的输出结果为t=4,输入值a和b应满足的条件是_______。

#include int main() {ints,t,a,b;

scanf(\"%d,%d”,&a,&b); s=1; t=1;

if(a>0)s=s+1; if(a>b)t=s+t; else if(a==b)t=5; else t=2*s;

printf(\"s=%d,t=%d\",s,t); return0; }

29、将以下含有switch语句的程序段改写成对应的含有非嵌套if语句的程序段。 请填空。

含有switch语句的程序段:

Int x,y,m;

y=(int)(x/10); switch(y)

{case10:m=5;break; case 9:m=4;break; case 8:m=3;break; case 7:m=2;break; case 6;m=1;break; default:m=0; }

含有非嵌套if语句的程序段: int x,m;

if(_______)m=5;

if(x<100)&&(x=90))m=4; if(x<90)&&(x>=80))m=3; if(×<80)&&(x>=70))m=2; if(x<70)&&(x=60))m=1; if(_______)_______;

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

#include int main() {int i,j;

for(i=4;i>=1;i--)

{for(j=1;j<=i;j++)putchar('#’); for(j=1;j<=4-i;j++)putchar('*'); putchar(\\n’); }

return 0; }

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

#include

int sub(int n);int main() {int i=5;

printf(\"%d\\n\",sub(i)); return(0); }

int sub(int n) {int a;

if(n==1)return 1; a=n+sub(n一1); return(a); }

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

#include int main()

{chars[]=\"ABCCDA\";int k;charc; for(k=1;(c=s[k])!='\\0';k++) {switch(c)

case'A':putchar('%');continue; case'B’:++k;break; default:putchar('*’);

case'C':putchar('&');continue; }

putchar(‘#’); } return 0; }

33、下面程序的功能是求矩阵A的转置矩阵B,并按矩阵形式打印出两个矩阵。请填空。

#include int main()

{int a[2][3]={1,2,3,4,5,6},b[3][2]; int(*p)[3],(*q)[2],i,j; p=a; q=b;

for(i=0;i<2;i++)for(j=0;j<3;j++) _______; p=a;

for(i=0;i<2;i++)

{for(j=0;j<3;j++)printf(\"%4d\",_______); printf(\"\\n\"); q=b;

for(i=0;i<3;i++)

{for(j=0;j<2;j++)printf(\"%4d\",_______); printf(\"\\n\"); return(0); }

四、编程题

34、已有变量定义语句doublea=5.0,p;int n=5;和函数调用语句p=mypow(a,n);用以求a的n次方。请编写double mypow(double x,inty)函数。

double mypow(double x,int y) {

}

35、编写程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。

一、填空题

1、1,4,16

2、【1】scanf【2】printf 3、【1】.c【2】.obj【3】.exe 4、【1】按位与【2】地址与

5、【1】用户标识符【2】预定义标识符 6、int x,int y,int(*fun)(int,int) 7、**

8、structs*next; 9、struct ST 10、aabcd

二、选择题

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

16、C

17、B

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

三、读程序填空

26、a=+00325囗囗囗x=+3.14159e+00 (注:答案中的囗代表空格) 27、a=374囗囗a=0374 a=fc囗囗a=0xfc

(注:答案中的囗代表空格) 28、029、【1】1【2】2【3】2 30、#### ###* ##** #***

31、15 32、#&*&%

33、【1】*(*(q+j)+i)=*(*(p+i)+j)【2】*(*(p+i)+j)【3】*(*(q+i)+j)

四、编程题

34、double mypow(double x,int y) {int i;double p; p=1.0;

for(i=1;i<=y;++i)p=p*x; return p; }

35、#include int main() {int x;

scanf(\"%d\",&x); if(x%5==08&.&x%7==0) printf(\"yes\"); else

printf(\"no\"); return 0; }

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

Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1

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

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