保捱科技网
您的当前位置:首页2022年辽宁师范高等专科学校公共课《C语言》科目期末试卷A(有答案)

2022年辽宁师范高等专科学校公共课《C语言》科目期末试卷A(有答案)

来源:保捱科技网
2022年辽宁师范高等专科学校公共课《C语言》科目期末试卷A(有

答案)

一、填空题

1、一个C语言源程序由若干函数组成,其中至少应含有一个________ 2、下面程序段的运行结果是_______。 x=2;

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

3、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。

a[0]=1;a[1]=2;swap(a,2);

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

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

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

6、若有定义语句:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为_______。 7、下面程序段的运行结果是_______。 int i=5;char c[6]=\"abcd\"; do{c[i]=c[i-1];}while(--i>0); puts(c);

8、设main函数的说明为:int main(int argc,char*argv[]),且有命令行为: FILE1123<回车>,则argc的值是_______,argv[1]的值是_______。

9、若想输出b数组的10个元素,则下面存在错误的程序行是_______。(每个程序行前面的数字代表行号。)

1 int main()

2 {int b[10]={1,3,5,7,9,2,4,6,8,10},k; 3 for(k=0;k<10;k++,b++) 4 printf(\"%4d\",*b); 5 return0; 6 }

10、若x=0123,则表达式(5+(int)(x))&(~2)的值是_______。

二、选择题

11、下面4个选项中,是合法转义字符的选项是( )。 A.’\\\" B. '\\ ' C. ' \\018' D. '\\\\o' '\\\\ ' ' \\017' '\\f' '\\10l' '\\n' '\\ \" ' xab' ' xlf'

12、下面4个选项中,是不合法的整型常量的选项是 ( )。 A.--0f1 B.-0Xcdf C.-018 D.-0x48eg

0xfff 017 999 -0680 011 12.456 5e2 03f 13、以下叙述正确的是

A.在C程序中,main函数必须位于程序的最前面

B.C程序的每行中只能写一条语句 C.C语言本身没有输入输出语句

D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误 14、一个C程序的执行是从( )

A.本程序的main函数开始,到main函数结束

B.本程序的第一个函数开始,到本程序文件的最后一个函数结束 C.本程序的main函数开始,到本程序文件的最后一个函数结束 D.本程序的第一个函数开始,到本程序main函数结束

15、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ) A.extern B.register C.auto D.static

16、已知ch是字符型变量,下面正确的赋值语句是( ) A.ch='123'; B.ch='\\xff'; C.ch='\\08'; D.ch=\\\";

17、以下不是无限循环的语句为( )。 A.for(y=0,x=1;x>++y;x=i++)i=x; B.for(;;x++=i): C.while(1){x++;}

D.for(i=10;;i-一)sum+=i;

18、有两个字符数组a、b,则以下正确的输人格式是( )。 A.gets(a,B.; B.scanf(\"%s%s\",a,B.; C)scanf(\"%s%s\

19、若有说明语句,则以下不正确的叙述是( )。

char a[]=\"It is mine\";char*p=\"It is mine\"; A.a+1表示的是字符t所在存储单元的地址 B.p指向另外的字符串时,字符串的长度不受 C.p变量中存放的地址值可以改变 D.a中只能存放10个字符

20、若有定义:int(*p)[4];则标识符p( )。 A.是一个指向整型变量的指针 B.是一个指针数组名

C.是一个指针,它指向一个含有四个整型元素的一维数组 D.说明不合法

21、若变量都已正确定义,则以下程序段的输出是( )。 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

22、定义如下变量和数组:

int k;int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )。

for(k=0;k<3;k++)printf(\"%d\",a[k][2-k]);

A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7

23、当运行以下程序时,从键盘输入:AhaMA Aha<回车>,则下面程序的运行结果是( )

#include int main()

{char s[80],c='a';int i=0; scanf(\"%s\ while(s[i]!= '\\0') {if(s[i]==c) s[i]=s[i]-32;

else if(s[i]==c-32) s[i]=s[i]+32: i++; } puts(s); return 0;

}

A)ahAMa B)AhAMa C)AhAMa ahA D)ahAMa ahA 24、下面程序段的运行结果是( )。

x=y=0;

while(x<15)y++,x+=++y; printf(\"%d,%d',y,x);

A.20,7 B.6,12 C.20,8 D.8,20

25、折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数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

三、读程序填空

26、已有定义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); 27、以下程序的输出结果为_______.

#include int main()

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

return0; }

28、以下程序的运行结果是_______,其算法是_______。

#include void sort(int a[]); int main()

{int a[5]={5,10,一7,3,7},i,t,j; sort(a);

for(i=0;i<=4;i++) printf(\"%d\",a[i]); return(0); void sort(inta[]) {int i,j,t;

for(i=0;i<4;i++) for(j=0;j<4一i;j++) if(a[j]>a[j+1])

{t=a[j];a[j]=a[j+1];a[j+1]=t;} }

29、以下程序可计算1门课程中10名学生成绩的平均分。请填空。

#include

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

#include int main() {int a=-10,b=-3; printf(\"%d,\",一a%b); printf(\"%d,\",(a-b,a+b));

printf(\"%d\\n\",a-b?a-b:a+b); return 0;

}

31、下面程序的功能是从键盘输入一个大写英文字母,要求按字母的顺序打印出3个相邻的字母,指定的字母在中间。若指定的字母为Z,则打印YZA;若为A,则打印ZAB。请填空。

#include int main() {char a[3],c;int i; c=getchar();

a[1]=c;if(c==Z'){a[2]='A';_______;) else if(c=='A'){a[0]='Z';_______;) else{a[0]=c-1;a[2]=c+1;} for(i=0;i<3;i++) putchar(a[i]): return 0; }

32、下面程序的功能是打印100以内个位数为6且能被3整除的所有数。请填空。

#include int main() {inti,j;

for(i=0;_______;i++) {j=i*10+6;

if(_______)continue; printf(\"%d\",j); } return0; }

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

#include #define N9

void fun(int*a,int*max,int*min) {int i;

*max=*min=*(a+0); for(i=1;i{if(*max<*(a+i))*max=*(a+i); if(*min>*(a+i))*min=*(a+i); } }

int main()

{int a[N]={76,78,45,90,34,52,12,66,38},fun(a,&.max,&.min);

printf(\"max=%d,min=%d\\n\",max,min); return(0);

,min; max }

四、编程题

34、用switch语句编程实现以下函数关系: −1 (x<0) y={0 (x=0)

1 (x>0)

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

一、填空题

1、主函数(或main函数) 2、**

3、【1】a[0]=2a[1]=1

【2】因实参是地址,已对指定地址中的内容进行了交换。 4、【1】b【2】b【3】b

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

10、0130或88或0x58

二、选择题

11、A 12、D

13、C 14、A

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

三、读程序填空

26、*d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=囗3.500e+00* *d(4)=一3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00囗x

(注:答案中的囗代表空格) 27、*3.140000,3.142*

28、【1】-735710【2】冒泡法排序

29、【1】i<10【2】array[i]【3】average(score) 30、1,-13,-7

31、【1】a[0]=c-1【2】a[2]=c+1

32、【1】break【2】i<=10 33、max=90,min=12

四、编程题

34、#include int main() {float x;int y; printf(\\n input x:\"); scanf(\"%f\",8.x); switch(x<0)

{case 1:y=-1;break; case 0:switch(x==0)

{case 1:y=0; break; default:y=1; } }

printf(\\n y=%d',y); return 0; }

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

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