还剩4页未读,继续阅读
文本内容:
C语言程序设计试题与答案
(九)学号学习中心名称专业:层次:姓名:题总*四五六七八九十------*—*号分得分意全部答案都要写在答题卡上
一、单项选择题20分,每题2分
1.执行下列程序段后,正确的结果是Bint k,a
[3]
[3]={1,2,3,4,5,6,7,8,9};for k=0;k3;k++printf%2d”,a[k][k];A123B1590147D
3692.若a是int类型变量,则计算表达式a=25/3%3的值是BA3B2C1D
03.下面正确的字符常量是CA cB\\‘C D”
4.C语言中,运算对象必需是整型的运算符是BA%B/C*D+
5.数字字符0的ASCH值为48,若有以下程序mainchar a-,b=,2,;printf〃%c,〃,b++;printf〃%d\n〃,b-a;程序运行后的输出结果是BA3,2B50,2C2,2D2,
506.以下语句或语句组中,能正确进行字符串赋值的是DA char*sp;*sp=〃right!〃;B chars
[10];s=//right!C chars
[10];*s=〃right!〃;D char*sp=〃right!’
7.fori=0;i10;i++ifi=5break;则循环结束后i的值为BA0B1C5D
108.执行下列程序段后,正确的结果是Cchar x
[8]={8,7,6,5,0,0},*s;s=x+1;printf u%d\nv,s
[2];A nB0C5D
69.C语言规定,简洁变量作为实参时,他和对应形参之间的数据传递方式是AA单向值传递B地址传递C相互传递D由用户指定方式
10.设有数组定义:char str□二China”;则下面的输出为Cprintf,strlenstr;A4B5C6D7
二、填空题30分,每空2分
1.下列程序段的输出结果是」—Oint i=19,j;j=i%4;printfu%d,j;
2.已知funl函数的功能是将三个数按由大到小的依次调整后依次放入a,b,c三个变量中,其中a存放最大的数,利用fun2函数填空完成此功能void fun2int*x,int*yint t;t=*x;*x=*y;*y=t;void funlint a=20,b=30,c=25;if cbfun2c,b;if acfun2c;if abfun2b;
3.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入B33回车〉,则输出结果是1B ottinclude stdio.hmain chara,b;a=getchar;scanf〃%d〃,b;a=a,A,+,0,;b=b*2;printf/z%c%c\n〃,a,b;
4.以下程序运行后的输出结果是435main int a=3,b=4,c=5,t=99;if baac{t=a;a=c;c=t;}if acbc{t=b;b=a;a=t;}printf〃%d%d%d\n〃,a,b,c;
5.若已知a二10,b=20,则表达式!ab的值是
06.若s是unsigned int型变量,则下面表达式的值是1s%2+s+l%
27.下面程序将字符数组a复制到字符数组b中main chara[]=//I ama boy.z/,b
[20];int i;fori=0;a[i]!=,\0;i++b[i]i\T;
8.若有int a
[3]
[2]={{1},{3,2},{4,5}};,则的值是
29.有以下程序,执行后输出结果是3—omainint t=l,i=5;for;i=0;i--t*=i;printf〃%d\n〃,t;
10.在循环语句中,break语句的作用是是用来跳出当前一层循环的,continue语句的作用是终止本次循环
三、写出程序的运行结果(30分,每题10分)
1.写出程序运行后的输出结果main inta=l,b;for b=l;b=10;b++ifa=8break;if a%2==la+=5;continue;a-=3;printf级d\n〃,b;输出结果:b=
42.写出程序运行后的输出结果^include string.hchar*sschar*sreturn s+strlens/2;main{char*p,*str=〃abcdefgh〃;p=ss str;printf〃%s\n〃,p;输出结果efgh
3.写出程序运行后的输出结果int flint x,int y{return xyx:y;}int f2int x,int y{return xyy:x;}main inta=4,b=3,c=5,d=2,e,f,g;e=f2fl a,b,fl c,d;f=f1f2a,b,f2c,d;g=a+b+c+d-e-f;printf〃%d,%d,%d\n〃,e,f,g;4,3,7
四、编程完形填空20分,每题10分
1.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串yes!,否则函数返回字符串no!,并在主函数中输出,所谓回文即正向与反向的拼法都一样,例如adgdao请填空#includestdio.httinclude string.hchar*huiwenchar*strchar*pl,*p2;int i,t=0;pl=str;p2=str+strlqnsW-l;str+strlenstrfori=0;i=strlen str/2;i++if*pl++!=*p2--t=l;break;if t=0或!tt—0return yes!;elsereturn〃no!〃;main charstr
[50];printfInput:〃;scanf〃,s〃,str;printf z,%s\n/z,huiwenstr;huiwensrt
2.下面程序完成以下功能1trans函数将二维数组a进行转置,即行列互换,如下图所1234122469245897367217162149/F;转置前转置后2findmin函数求新数组中对角线左上到右下上的最小元素的值;请将程序填写完整void transint b
[4]
[4]/*转置函数*/int i,j,temp;for i=0;i4;i++for j=0;j4;j++temp=b[i][j];b[j][i]=temp;int findminintb
[4]
[4]/*求对角线上最小的元素*/int min,i,j;min=;fori=0;i4;i++if b[i][i]min min=b[i][i];return min;main inti,j;inta
[4]
[4],min;for i=0;i4;i++for j=0;j4;j++scanf〃%d〃,a[i][j];transa;printf theresult is:;for i=0;i4;i++forj=0;j4;j++printf〃%5d〃,a[i][j];printf〃\n;min=findmina;printf/zthe minis%5d\n〃,min;。