}
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5);
for(i=o;i<10;i++)print(“%d,”,aa[i]);
printf(‘\n”);
}
程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,8,7.6.5.4.9,10D)1,2,10,9,8,7,6,5,4,3
(32)有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
}
main()
{inti,j=0;
for(i=i;i<3;i++)j+=f(i);
printf(“%d\n”,j);
}
程序运行后的输出结果是
A)4B)3C)2D)1
(33)有以下程序
main()
{chara[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’,‘h’,‘\0’};inti,j;
i=sizeof(a);j=strlen(a);
printf(“%d,%d\b”i,j);
}
程序运行后的输出结果是
A)9,9B)8,9C)1,8D)9,8
(34)以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
voidreverse(inta[],intn)
{inti,t;
for(i=0;i{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,8);
for(i=6;i<10;i++)s+=b[i];
printf(“%d\n”,s);
}
程序运行后的输出结果是
A)22B)10C)34D)30
(35)有以下程序
main()
{intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
inti,s=0
for(i=0;i<4;i++)s+=aa[i][1];
printf(“%d\n”,s);
}
程序运行后的输出结果是
A)11B)19C)13D)20
(36)有以下程序
#include
main()
{char*p=“abcde\Ofghjik\0”;
printf(“%d\n”,strlen(p));
}
程序运行后的输出结果是
A)12B)15C)6D)5
(37)程序中头文件typel.h的内容是:
#defineN5
#defineM1N*3
程序如下:
#define“type1.h”
#defineM2N*2
main()
{inti;
i=M1+M2;printf(“%d\n”,i);
}
程序编译后运行的输出结果是:
A)10B)20C)25D)30
(38)有以下程序
#include
main()
{FILE*fp;inti=20,j=30,k,n;
fp=fopen(“d1.dat”“w”);
fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”j);
fclose(fp);
fp=fopen(“d1.dat”,“r”);
fp=fscanf(fp,“%d%d”,&k,&n);printf(“%d%d\n”,k,n);
fclose(fp);
}
程序运行后的输出结果是
A)2030B)2050C)3050D)3020
(39)以下叙述中错误的是
A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B)在程序结束时,应当用fclose函数关闭已打开的文件
C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D)不可以用FILE定义指向二进制文件的文件指针
(40)有以下程序
#include
main(intargc,char*argv[])
{inti,len=0;
for(i=1;iprintf(“%d\n”,len);
}
程序编译连接后生成的可执行文件是ex1.exe,若运行时输入带参数的命令行是:
ex1abcdefg10<回车>
则运行的结果是:
A)22B)17C)12D)9
(41)有以下程序
intfa(intx)
{returnx*x;}
intfb(intx)
{returnx*x*x;}
intf(int(*f1)(),int(*f2)(),intx)
{returnf2(x)-f1(x);}
main()
{inti;
i=f(fa,fb,2);printf(“%d\n”,i);
}
程序运行后的输出结果是
A)-4B)1C)4D)8
(42)有以下程序
inta=3;
main()
{ints=0;
{inta=5;s+=a++;}
s+=a++;printf(“%d\n”,s);
}
程序运行后的输出结果是
A)8B)10C)7D)11
(43)有以下程序
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-‘a’+’A’;
s++;
}
}
main()
{charstr1[100]=“abcddfefdbd”,c=’d’;
ss(str1,c);printf(“%s\n”,str1);
}
程序运行后的输出结果是
A)ABCDDEFEDBDB)abcDDfefDbD
C)abcAAfefAbAD)Abcddfefdbd
(44)有以下程序
structSTU
{charnum[10];floatscore[3];};
main()
{structstus[3]={{“20021”,90,95,85},
{“20022”,95,80,75},
{“20023”,100,95,90}},*p=s;
inti;floatsum=0;
for(i=0;i<3,i++)
sum=sum+p->score[i];
printf(“%6.2f\n”,sum);
}
程序运行后的输出结果是
A)260.00B)270.00C)280.00D)285.00
(45)设有如下定义:
strucksk
{inta;
floatb;
}data;
int*p;
若要使P指向data中的a域,正确的赋值语句是
A)p=&a;B)p=data.a;C)p=&data.a;D)*p=data.a;
(46)有以下程序
#include
structNODE
{intnum;structNODE*next;};
main()
{structNODE*p,*Q,*R;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(structNODE*)malloc(sizeof(structNODE));
p->num=10;q->num=20;r->num=30;
p->next=q;q->next=r;
printf(“%d\n”,p->num+q->next->num);
}
程序运行后的输出结果是
A)10B)20C)30D)40
(47)若有以下说明和定义
typedefint*INTEGER;
INTEGERp,*q;
以下叙述正确的是
A)P是int型变量B)p是基类型为int的指针变量
C)q是基类型为int的指针变量D)程序中可用INTEGER代替int类型名
(48)有以下程序
main()
{unsignedchara,b,c;
a=0x3;b=a|0x8;c=b<<1;
printf(“%d%d\n”,b,c);
}
程序运行后的输出结果是
A)–1112B)–6–13C)1224D)1122
(49)有以下程序
#include
main()
{char*p,*q;
p=(char*)malloc(sizeof(char)*20);q=p;
scanf(“%s%s”,p,q);printf(“%s%s\n”,p,q);
}
若从键盘输入:
abcdef<回车>,则输出结果是:
A)defdefB)abcdefC)abcdD)dd
(50)以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。
#include
voidf(charp[][10],intn)
{chart[20];inti,j;
for(i=0;ifor(j=i+1;jif(strcmp(p[i],p[j])<0)
{strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}
}
main()
{charp[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”};inti;
f(p,5);printf(“%d\n”,strlen(p[0]));
}
程序运行后的输出结果是
A)6B)4C)5D)3
二、填空题(每空2分,共40分)
请将答案分别写在答题卡中序号为【1】至【20】的横线上,答在试卷上不得分。
1、计算机软件分为系统软件和应用软件,操作系统属于[1]。
2、在DOS环境下,代表键盘和显示器的设备文件名为[2]。
3、支持Internet基本服务的协议是[3]。
4、从Windows环境进入MS-DOS方式后,返回Windows环境的DOS命令为[4]。
5、某微型机的运算速度为2MIPS,则该微型机每秒执行[5]条指令。
6、设有定义:
intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。
scanf(“%d,”[6]);
printf(“%d\n”,[7]。
);
7、以下程序运行后的输出结果是[8]。
main()
{intx=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf(“%d,%d\n”,x,y);
}
8、以下程序运行后的输出结果是[9]。
main()
{intx=15;
while(x>10&&x<50)
{x++;
if(x/3){x++;break;}
elsecontinue;
}
printf(“%d\n”,x);
}
9、有以下程序:
#include
main()
{charc;
while((c=getchar())!
=’?
’)putchar(--c);
}
程序运行时,如果从键盘输入:
Y?
N?
<回车>,则输出结果为[10]。
10、以下程序运行后的输出结果是[11]。
voidfun(intx,inty)
{x=x+y;y=x-y;x=x-y;
printf(“%d,%d,”,x,y);}
main()
{intx=2,y=3;
fun(x,y);
printf(“%d,%d\n”,x,y);
}
11、以下函数的功能是计算s=1+
+
+……+
,请填空。
doublefun(intn)
{doubles=0.0,fac=1.0;inti;
for(i=1,i<=n;i++)
{fac=fac[12];
s=s+fac;
}
returns;
}
12fun函数的功能是:
首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。
请填空。
#include
#defineN100
intfun(int(*a)[N])
{introw,col,max,min;
for(row=0;row{for(max=a[row][0],col=1;colif([13])max=a[row][col];
if(row==0)min=max;
elseif([14])min=max;
}
returnmin;
}
13、函数sstrcmp()的功能是对两个字符串进行比较。
当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。
请填空。
#include
intsstrcmp(char*s,char*t)
{while(*s&&*t&&*s==[15])
{s++;t++;}
return[16];
}
14、下面程序的运行结果是[17]。
#defineN10
#defines(x)x*x
#definef(x)(x*x)