首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事
您的当前位置:首页正文

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

来源:画鸵萌宠网
2022年绵阳师范学院公共课《C语言》科目期末试卷A(有答案)

一、填空题

1、请读程序段: int x=1;

printf(\"%d\\n\",~x); 上面程序段的输出结果是_______。

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

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

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

5、若a、b和c均是int型变量,则执行表达式a=(b=4)+(c=2)后a的值为_______,b的值为_______,c的值为_______。

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=3、b=7、x=8.5、y=71.82、c1='A'、c2='a',正确的数据输入形式是_______。

#include int main() {int a,b; float x,y; char cl,c2;

scanf(\"a=%d b=%d\",&.a,&.b); scanf(\"x=%f y=%\",8.x,8.y); scanf(\"c1=%cc2=%c”,8.cl,8.c2);

printf(\"a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c\",a,b,x,y,cl,c2);

return0; }

9、假设变量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;_______;

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

二、选择题

11、下面4个选项中,是不合法的用户标识符的选项是( )。 A.A B.float C.b-a D._123 P_01 a0 goto temp Do A int INT

12、表达式18/4*sqrt(4.0)/8值的数据类型为( ) A.int B.float C.double D.不确定

13、已有定义inta=-2;和输出语句:printf(\"%81x”,A.;以下正确的叙述( ) A.整型变量的输出格式符只有%d一种

B.%x是格式符的一种,它可以适用于任何一种类型的数据

C.%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的 D.%81x不是错误的格式符,其中数字8规定了输出字段的宽度

14、有输入语句:scanf(\"a=%d,b=%d,c=%d\",&a,&b,&C.;为使变量a的值为1,b的值为3,c的值为2;从键盘输入数据的正确形式应当是( )。(注:囗表示空格)

A.132<回车> B.1,3,2<回车>

C.a=1囗b=3囗c=2<回车> D.a=1,b=3,c=2<回车> 15、判断字符串a和b是否相等,应当使用( )。

A.if(a==B. B.if(a=B.C.if(strcpy(a,B.)D.if(strcmp(a,B.) 16、C语言规定:在一个源程序中,main函数的位置( ) A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后

17、下面的程序段( )。

x=3; do {y=x--;

if(!y){printf(\"x\");continue;} printf(“#”); }while(1<=x<=2);

A.将输出## B.将输出并## * C.是死循环 D.含有不合法的控制表达式 18、若用数组名作为函数调用的实参,则传递给形参的是( ) A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D.数组元素的个数

19、若有以下定义和语句,则对a数组元素地址的正确引用为( )。 int a[2][3],(*p)[3]; p=a;

A.*(p+2) B.p[2] C.p[1]+1 D.(p+1)+2

20、若需要建立如图9-3所示的存储结构,且已有说明float*p,m=3.14;则正确的赋值语句是( )

A)p=m; B)p=&m; C)*p=m; D)*p=&m;

21、以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,'A',B’,C.;则符合程序段运行结果的选项是( )。

void move(char getone,char putone) {printf(\"%c——>%c\\n\",getone,putone); void hanoi(int n,char one,char two,char three) {if(n==1)move(one,three); else

{hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); } }

A)A-->C B)A-->C C)A-->C D)A-->C A-->B A-->B A-->B A-->B C-->B C-->A C-->B C-->B B-->A A-->B A-->C A-->C C-->B B-->C B-->A A—->B A-->C A-->C B-->C B-->C A-->B A-->B A-->C A-->C

22、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。请选择填空。( )

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

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

A.口 B.\\0 C.e D.f(其中口表示1个空格) 24、若变量都已正确定义,则以下程序段的输出是( )。

a=10;b=50;c=30; if(a>B.a=b,b=c; c=a;

printf(\"a=%db=%dc=%d\\n\".a,b,C.;

A.a=10 b=30 c=10 B.a=10 b=50 c=10 C.a=50 b=30 c=10 D.a=50 b=30 c=50

25、下面程序的功能是在输入的一系列正整数中求出最大者,输入0结束循环,请选择填空( )。

#include int main() {int a,max=0; scanf(\"%d”,8.A.; while(【】)

{ if(maxA.a==0 B.a C.!a==1 D.!a

三、读程序填空

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()

{int x=10;float pi=3.1416; printf(\"(1)%d\\n\ printf(\"(2)%6d\\n\ printf(\"(3)%f\\n\ printf(\"(4)%14fNn\ printf(\"(5)%e\\n\ printf(\"(6)%14e\\n\ printf(\"(7)%g\\n\ printf(\"(8)%12g\\n\ return 0;

}

28、以下程序a对应的数学表达式是_______;程序b对应的数学表达式是_______。

程序a 程序b

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

scanf(\"%d\ if(a<0) b=-1; b=0; else if(a==0) if(a!=0)

b=0; if(a>0) b=1; else b=1; else b=-1;

printf(\"a=%d,b=%d\\n\ return 0; return0; } } 29、以下程序的功能是_______。

#include int main()

{int x,y,sum,product; printf(\"Enterxand y:\"); scanf(\"%d,%d\",&x,&y); sum=x+y; product=x*y; if(sum>product)

printf(\"(x+y)>(x*y)\"); else

printf(\"(x*y)>=(x+y)\"); return 0; }

30、下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数;若未找到,打印not exist。请填空。

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

for(i=1;i<=10;i++) {scanf(\"%d\",&a); if(a%7==0)_______; }

if(_______)printf(\"%d\\n\",a); else printf(\"not exist\\n\"); return0; }

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、下面程序用“快速顺序查找法”判断数组a中是否存在某一数。请填空。

#include int main()

{int a[9]={25,57,48,37,12,92,86,33},i,x; scanf(\"%d”,8&.x); _______;i=0;

while(a[i]!=x)i++;

if(_______)printf(\"Found!The index is:%d\\n\",i); else printf(\"Can't found!\\n\"); return0; }

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

#include int main()

{char a[80],b[80],*p=\"aAbcdDefgGH\"; Int i=0,j=0; while(*p!='\\0') {if(*p>='a'&&*p<='z') {a[i]=*p;i++;} else{b[j]=*p;j++;} p++; }

a[i]=b[j]= '\\o'; puts(a); puts(b); return(0); }

四、编程题

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

35、函数fun的功能是:判断输入的3个整型值能否组成三角形,组成的是等边三角形,还是等腰三角形。请在函数中填写正确的内容。 #include

void fun(int a,int b,intc); int main() {int a,b,c;

printf(\"\\ninput a,b,c:\\n\"); scanf(\"%d%d%d\",&a,&b,&c); fun(a,b,c); return(0); }

void fun(int a,int b,int c) {if(a+b>c&&b+c>a8.&a+c>b) (请在此处填写正确的内容) Else

printf(\"不能组成三角形\"); }

参考答案

一、填空题

1、-2

2、【1】scanf【2】printf 3、【1】.c【2】.obj【3】.exe

4、【1】用户标识符【2】预定义标识符 5、【1】6【2】4【3】2

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

8、a=3囗b=7x=8.5囗y=71.82c1=ADc2=a<回车> (注:答案中的囗代表空格) 9、【1】t=a【2】c=t

10、9

二、选择题

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

16、C

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

三、读程序填空

26、i:dec=-4,oct=177774,hex=fffc,unsigned=65532 27、(1)10 (2)口口口囗10 (3)56.100000

(4)口口口口口口3.141600 (5)5.68100e+02 (6)口口口3.14160e+00 (7)3.1416

(8)口口口口囗囗3.1416 (注:答案中的囗代表空格)

28、【1】

29、输入两个数x、y,比较x+y和x*y哪个大。 30、【1】break【2】i<=10 31、15

32、【1】a[8]=x【2】i<8 33、abcdefg ADGH

四、编程题

34、#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; }

35、{if(a==b&&b==c)printf(\"这是等边三角形\"); else if(a==b||b==c||a==c)printf(\"这是等腰三角形\"); else

printf(”组成一般三角形”); }

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