还剩2页未读,继续阅读
文本内容:
专接本计算机C语言程序设计模拟试题及答案
(二)
一、单项选择题(每小题2分,共20分)
1.在说明语句int*f;中标识符f代表的是( )A)一个用于指向整型数据的指针变量 B一个用于指向一维数组的行指针C一个用于指向函数的指针变量 D一个返回值为指针型的函数名
2.下列程序的输出结果是( )#includestdio.hvoidmain{doubled=
3.2;intxy;x=
1.2;y=x+
3.8/
5.0;printf%d\nd*y;}A3 B
3.2 C0 D
3.
073.设变量均已正确定义,若要通过scanf%d%c%d%ca1c1a2c2;语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y以下所示的输入形式中正确的是(注□代表空格字符)( )A)10□X□20□Y〈回车〉 B)10□X20□Y〈回车〉C)10□X〈回车〉 D)10X〈回车〉 20□Y〈回车〉 20Y〈回车〉
4.以下选项中,当x为大于1的奇数时,值为0的表达式( )Ax%2==1 Bx/2 Cx%2!=0 Dx%2==
05.以下叙述中正确的是( )Abreak语句只能用于switch语句体中Bcontinue语句的作用是使程序的执行流程跳出包含它的所有循环Cbreak语句只能用在循环体内和switch语句体内D在循环体内使用break语句和continue语句的作用相同
6.以下合法的字符型常量是( )A\x13 B\018 C65 D\n
7.在C语言中,函数返回值的类型最终取决于( )A函数定义时在函数首部所说明的函数类型 Breturn语句中表达式值的类型C调用函数时主函数所传递的实参类型 D函数定义时形参的类型
8.设intx=1y=1;表达式!x||y--的值是( )A0 B1 C2 D-
19.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是( )Ap=2*int*mallocsizeofint; Bp=int*malloc2*sizeofint;Cp=int*malloc4*2; Dp=int*calloc2sizeofint;
10.以下函数的功能是( )intfunchar*s{char*t=s; while*t++; returnt-s; }A比较两个字符的大小 B计算s所指字符串占用内存字节的个数C计算s所指字符串的长度 D将s所指字符串复制到字符串t中
二、完成下列的程序填空(每空3分,共27分)1.输入20个数,用起泡法对这20个数升序排列#includestdio.hvoidmain{inta
[20]; intijt; printfinput20numbers:\n; fori=0;i20;i++ scanf%da[i]; printf\n; forj=0;j19;j++ fori=0; ;i++ if { } printfthesortednumbers:\n; fori=0;i20;i++ printf%da[i]; printf\n;}2.写一个函数,输入一个十六进制数,输出相应的十进制数#includestdio.hvoidmain{chara
[6]; scanf%sa; printf%d\nhtoia;} inthtoichars[]{intin; n=0; fori=0;s[i]!=\0;i++ {ifs[i]=0s[i]=9 n=n*16+ ; ifs[i]=as[i]=f n=n*16+ ; ifs[i]=As[i]=F n=n*16+ ; }returnn;} 3.用指针的方法编写的函数,将一个的整型二维数组行列互换#includestdio.hvoidmain{voidmoveint*pointer; inta
[3]
[3]*pi; printfinputmatrix:\n; fori=0;i3;i++ scanf%d%d%da[i]
[0]a[i]
[1]a[i]
[2]; p=a
[0]
[0]; movep; printfNowmatrix:\n; fori=0;i3;i++ printf%d%d%d\na[i]
[0]a[i]
[1]a[i]
[2];}voidmoveint*pointer{intijt; fori=0;i3;i++ forj=i;j3;j++ { ; ; ; }}
三、写出下列程序的运行结果(每小题8分,共24分)
1.以下程序运行后的输出结果是 #includestdio.hvoidmain{voidfintnint*r; intm=7r; fmr; printf%d\nr;}void fintnint*r{intr1=0; ifn%3==0 r1=n/3; else ifn%5==0 r1=n/5; else f--nr1;*r=r1;}
2.以下程序的输出结果是 #includestdio.hfinta{intb=0;staticintc=3;b++;c++;returna+b+c;}voidmain{inta=2i;fori=0;i3;i++printf%d\nfa;}
3.以下程序的输出结果是 #includestdio.hvoidfunint*xint*y{printf%d%d*x*y;*x=3;*y=4;} voidmain{intx=1y=2;funyx;printf%d%dxy;}
四、按要求编写下列程序(第1小题16,第2小题13分,共29分)1.编程实现下面的函数,要求输入一个x的值,输出y值,函数如下-5 x0y= 0 x=05 x02.编写一个程序,将一组数据{6,5,8,1,0,4,7,3,2,9}按从小到大的顺序排列,程序显示排序前和排序后的结果参考答案
一、单项选择题(每小题2分,共20分)DCDDC AABAB
二、完成下列的程序填空(每空3分,共27分)1.i19-ja[i]a[i+1]t=a[i];a[i]=a[i+1];a[i+1]=t;
2.s[i]-0s[i]-a+10s[i]-A+
103.t=*pointer+3*i+j*pointer+3*i+j=*pointer+3*j+i*pointer+3*j+i=t
三、写出下列程序的运行结果(每小题8分,共24分)
1、
22、
7893、2143
四、按要求编写下列程序(第1小题13,第2小题16分,共29分)1.编程实现下面的函数,要求输入一个x的值,输出y值,函数如下-5 x0y= 0 x=05 x0#includestdio.hvoidmain{int xy; printfenterx:; scanf%dx; ifx0 y=-5; else ifx==0y=0; elsey=5; printfx=%dy=%d\nxy; }2.编写一个程序,将一组数据{6,5,8,1,0,4,7,3,2,9}按从小到大的顺序排列,程序显示排序前和排序后的结果#includestdio.h#defineN10Voidmain{inta[N]={6,5,8,1,0,4,7,3,2,9}intijt;printf“Thearraybeforesorted:”;fori=0;iN;i++ printf“%4d”a[i];fori=0;i9;i++{ forj=i+1;j10;j++ {ifa[i]a[j]{ t=a[i]; a[i]=a[j]; a[j]=t;}}}printf“Thearrayaftersorted:”;fori=0;iN;i++ printf“%4d”a[i];}。