您的当前位置:首页正文

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

2022-06-14 来源:钮旅网
2022年新疆大学公共课《C语言》科目期末试卷A(有答案)

一、填空题

1、设x是一个整数(16bit),若要通过xly使x低8位置1,高8位不变,则y的八进制数是_______。

2、C语言源程序的基本单位是________

3、结构化程序由________、________ 、________ 3种基本结构组成。

4、在C语言中,用关键字_______定义单精度实型变量,用关键字_______定义双精度实型变量,用关键字_______定义字符型变量。

5、若有定义语句:charc='\\010';则变量c中包含的字符个数为_______。 6、下面程序段的运行结果是_______。

chara[]=\"12345\",*p; int s=0;

for(p=a;*p!=\\0';p++) s=10*s+*p-'o'; printf(\"%d\\n\",s);

7、下面程序段是找出整数的所有因子。请填空。

scanf(\"%d\",&x); i=1;for(;_______;)

{if(x%i==0)printf(\"%3d\",i); i++; }

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

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、下面程序段将输出computer。请填空。

char c[]=\"It is a computer\"; for(i=0;_______;i++) {_______;printf(\"%c\",c[j]);}

二、选择题

11、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( )。

A.n=(n*100+0.5)/100.0 B.m=n*100+0.5,n=m/100.0 C.n=n*100+0.5/100.0 D.n=(n/100+0.5)*100.0

12、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( ) A.7 B.8 C.6 D.2

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

B.只有格式控制,没有输入项,也能进行正确输入,如scanf(\"a=%d,b=%d\");

C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\"%4.2f\",&f);

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

14、设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句是( )。

A.z=exp(y)+fabs(x); B.y=log10(y)+pow(y);

C.z=sqrt(y-z); D.x=(int)(atan2((double)x,y)+exp(y-0.2));

15、若有初始化语句:int a[3][4]={0};,则下面正确的叙述是( )。 A.只有元素a[0][0]可得到初值0 B.此初始化语句不正确

C.数组a中各元素都可得到初值,但其值不一定为0 D.数组a中每个元素均可得到初值0

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

17、下面有关for循环的正确描述是( )。 A.for循环只能用于循环次数已经确定的情况 B.for循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break 语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

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

A.地址传递 B.单向值传递

C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 19、main函数的正确说明形式是( )。

A.int main(int argc,char*argv) B.int main(int abc,char*x abv) C.int main(int argc,char argv) D.int main(int c,char v[]) 20、若有以下定义,则数值不为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

21、以下程序可选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。请选择填空( )。

#include int sub(int k,int n) {int al,a2;a2= k/10; al=k-【】;

if((k%3==0&&a2==5)|l(k%3==0&&al==5)) {printf(\"%d\",k); n++; return n; }

else return-1; }

int main(){int i,k,n,m; for(k=10 ;k<=99;k++) {m=sub(k,n); if(m!=-1)n=m; }

printf(\"\\nn=%d\",n); return(O); }

A.a2*10 B.a2 C.a2/10 D.a2%10 22、下面程序的运行结果是( )。

#include int main()

{char ch[7]={\"12ab56\; int i,s=0; for(i=0;ch[i]>= '0'&&ch[i]<='9';i+=2) s=10*s+ch[i]-'o'; printf(\"%d\\n\",s); return0; }

A.1 B.1256 C.12ab56 D.15 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、若w、x、y、z、m均为int型变量,则执行下面语句后的m值是( )。w=1;x=2;y=3;z=4: m=(wA.1 B.2 C.3 D.4

25、下面程序的功能是计算1~50中是7的倍数的数值之和,请选择填空(#include int main() {int i,sum=0;

for(i=1;i<=50;i++) if(【】)sum+=i;

)。

printf(\"%d,sum); return 0;

}

A.(int)(i/7)==i/7 B.(int)i/7==i/7 C.i%7=0 D.i%7==0

三、读程序填空

26、已知字母A的ASCII码值为65。以下程序的输出结果是_______。

#include int main() {char a,b; a='A'+'4'-'3'; b='A'+'6'-2';

printf(\"a=%d,b=%c\\n\",a,b); return0; }

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、以下程序的功能是:输入一个小写字母,将字母循环后移5个位置后输出。例如’a’变成’f’,w’变成b’。请填空。

#include int main() {char c; c=getchar();

if(c>='a'8&&.c<='u')【l】: else if(c>='v√8&8.c<='z)_______; putchar(c); return 0; }

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、当运行以下程序时,从键盘输入“China#<回车>”,则下面程序的运行结果是_______。

#include int main()

{int vl=0,v2=0;char ch;

while((ch=getchar())!='#’) switch(ch) { case'a’: case'h': default:v1++; case′o':v2++;

printf(\"%d,%d\\n\",v1,v2); return 0; }

31、为使以下程序顺利运行,请在_______中填写正确的内容;当输入的数值为57时,该程序的运行结果是_______。

# include _______ int main() { double x,y;

scanf(\"%11% lf\ printf(\"% If\\n\ return(O); }

double max(double a, double b) {return(a>b?b-a:a-b):}

32、当运行以下程序时,从键盘输入

girl<回车> boy<回车>

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

#include #include int main()

{char a[2][80],t;int i,j,m,n,l,max; for(i=0;i<=1;i++) gets(a[i]); t=a[0][0]; for(i=0;i<=1;i++) {1=strlen(a[i]); for(j=0;j<=1;j++)

if(a[i][j]>t)

{max=a[i][j];m=i;n=j; }

printf(\"%c%d%d\\n\ return 0; }

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

#include int main()

{int b[3][2]={2,4,6,8,10,12}; int*a[2][3],**q,k,i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) a[i][j]=*(b+j)+i; q=a[o];

for(k=0;k<6;k++) {printf(\"%d\",x*q); q++; }

return(0); }

四、编程题

34、编写程序,统计d输入的命令行中第二个参数所包含的英文字符个数。

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、0377 2、函数

3、【1】顺序结构【2】选择结构【3】循环结构 4、【1】float【2】double【3】char 5、1 6、12345 7、i<=x

8、【1】scanf(\"%d%f%f%c%c”,&a,&.b,8.c1,8.c2); 【2】3囗6.5囗12.6aA<回车> (注:答案中的囗代表空格) 9、【1】t=a【2】c=t 10、【1】i<=7【2】j=i+8

二、选择题

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

16、C

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

三、读程序填空

26、a=66,b=E 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】c=c+5【2】c=c-21 29、【1】1【2】2【3】2 30、5,5

31、【1】double max(double,double);【2】-2.000000 32、y12

33、2 6 10 4 8 12

四、编程题

34、#include #include

int main(int argc,char*argv[]) {char*str; int num=0; if(argc==2)

{str=argv[1]; while(*str)

if(isalpha(*str++))num++; printf(\"\\nThe count is:%d.\\n\",num); }

return 0; }

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

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

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

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