33.下面程序的输出结果是( )
fun(int x)
{
int a=3;
a*=x;
return a;
}
main()
{
int x=2,y=1,n;
n=fun(x);
n=fun(y);
printf(″%d\n″,n);
}
A.2 B.4 C.3 D.8
【参考答案】C
34.以下程序的结果是( )
main()
char *p=″abcdefgh″,*r;
long *q;
q=(long*)p;
q++;
r=(char*)q;
printf(″%s\n″,r);
}
A.defg B.cdef C.ghab D.efgh
【参考答案】D
35.C语言中提供的关键字是( )
A.swicth B.cher C.Case D.default
【参考答案】D
36.下面程序的输出结果是( )
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf(″%d\n″,*(p+2));
}
A.3 B.4 C.1 D.2
【参考答案】A
37.下列程序的输出结果是( )
main()
{ ouble d=3.2;int x,y;
x=1.2;y=(x+3.8)/5.0;
printf(″%d\n″,d*y);
}
A.3 B.3.2 C.0 D.3.07
【参考答案】C
38.执行以下程序后,a,b的值分别为( )
main()www.Examw.CoM
{ int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
printf(″a=%d\n″,a);
printf(″b=%d\n″,b);
}
A.-1,5 B.1,6 C.0,7 D.4,10
【参考答案】C
39.以下不正确的定义语句是( )
A.double x[5]={2.0,4.0,8.0,10.0};
B.int y[5]={0,1,3,5,7,9};
C.char c1[ ]={′1′,′2′,′3′,′4′,′5′};
D.char c2[ ]={′\x10′,′\xa′,′\x8′};
【参考答案】B
40.下面程序段的运行结果是( )
char *format=″%s,a=%d,b=%d\n″;
int a=11,b=10;
a+=b;
printf(format,″a+=b″,a,b);
A.for,″a+=b″,ab B.format,″a+=b″
C.a+=b,a=21,b=10 D.以上结果都不对
【参考答案】C
41.以下叙述中不正确的是( )
A.在不同的函数中可以使用相同的名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
【参考答案】D
42.在16位IBM-PC机上使用C语言,若有如下定义
struct data
{ int i;
char ch;
double f;
} b;
则结构变量b占用内存的字切数是( )
A.1 B.2 C.7 D.11
【参考答案】D
43.以下程序的输出结果是( )
void reverse(int a[],int n)
{ int i,t;
for(i=0;i { t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } main() { int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0; reverse(b,8); for(i=6;i<10;i++)s+=b[i]; printf(″%d\n″,s); } A.22 B.10 C.34 D.30 【参考答案】A 44.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入PROG ABCDEFGH IJKL<回车>,则输出结果为( ) main( int argc,char *argv[]) { while(--argc>0) printf(″%s″,argv[argc]); printf(″\n″); }考试用书 A.ABCDEFG B.IJHL C.ABCDEFGHIJKL D.IJKLABCDEFGH 【参考答案】D 45.阅读以下程序及对程序功能的描述,其中正确的描述是( ) #include main() { FILE *in,*out; char ch,infile[10],outfile[10]; printf(″Enter the infile name:\n″); scanf(″%s″,infile); printf(″Enter the outfile name:\n″); scanf(″%s″,outfile); if((in=fopen(infile,″r″))==NULL) { printf(″cannot open infile\n″); exit(0); } if((out=fopen(outfile,″w″))==NULL) { printf(″cannot open outfile\n″); exit(0); } while(!feof(in))fputc(fgetc(in),out); fclose(in); fclose(out); } A.程序完成将磁盘文件的信息在屏幕上显示的功能 B.程序完成将两个磁盘文件合二为一的功能 C.程序完成将一个磁盘文件复制到另一个磁盘文件中 D.程序完成将两个磁盘文件合并并在屏幕上输出 【参考答案】C A.\b B.\t C.\v D.\f 【参考答案】C 47.设变量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 【参考答案】B 48.若变量已正确说明为int类型,要通过语句scanf(″%d %d %d″,&a,&b,&c);给a赋值3,b赋值5,c赋值8,不正确的输入形式是( ) A.3<回车> B.3,5,8<回车> 5<回车> 8<回车> C.3<回车> D.3 5<回车> 5 8<回车> 8<回车> 【参考答案】B 49.对表达式for(表达式1;;表达式3)可理解为( ) A.for(表达式1;0;表达式3) B.for(表达式1;1;表达式3) C.for(表达式1;表达式1;表达式3) D.for(表达式1;表达式3;表达式3) 【参考答案】B 50.若有如下语句 int x=3; do{ printf(″%d\n″,x-=2);} while(!(--x)); 则上面程序段( ) A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环 【参考答案】B 二、填空题 1.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【1】。 【参考答案】: 【1】 log2n 2.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【2】。 【参考答案】: 【2】 软件生命周期 3.数据的逻辑结构有线性结构和【3】两大类。 【参考答案】: 【3】 非线性结构 4.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【4】。 【参考答案】: 【4】 可重用性 5.关系操作的特点是【5】操作。 【参考答案】: 【5】 集合 int x=17,y=26; printf(″%d″,y/=(x%=6)); 【参考答案】: 【6】 5 7.若有以下程序段: int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是【7】。 【参考答案】: 【7】 0 8.以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。 void fun(char *w,char x,int *n) { int i,p; p=0; w[*n]=x; while(x>w[p])p++; for(i=*n;i>p;i--)w[i]=【8】; w[p]=x;中华IT学院 ++*n; } 【参考答案】: 【8】 w[i-1] 9.以下程序的输出结果是【9】。 main() { int y=9; for(;y>0;y--) if(y%3==0) { printf(″%d″,--y);continue;} } 【参考答案】: 【9】 852 10.以下程序的输出结果是【10】。 #define PR(ar) printf(″%d″,ar) main() { int j,a[]={1,3,5,7,9,11,15},*p=a+5; for(j=3;j;j--) switch(j) { case 1: case 2:PR(*p++);break; case 3:PR(*(--p)); } printf(″\n″); } 【参考答案】: 【10】 9,9,11
46.下列用于printf函数的控制字符常量中,代表“竖向跳格”的转义字符常量是( )
6.以下程序段的输出结果是【6】。