(A卷)第 6 页 共 11 页
{ int i; char string[20], str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1])); strcpy(string,scmp(string,str[2])); printf(\ }
若运行时依次输入:abc、abcd和abba三个字符串,则输出结果为( )。 A、abcd B、abca C、abc D、abba
18.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是( )。
for(i=5;i>0;i--)
for(j=0;j<4;j++){…}
A、20 B、24 C、25 D、30
19. 若已定义了如下的共用体类型变量x,则x所占用的内存字节数为( )。
union data { int i; char ch; double f;
}x; A、7
B、11
C、8
D、10
20. 如果文件1包含文件2,文件2中要用到文件3的内容,而文件3中要用到文件4的内容,则可在文件1中用三个#include命令分别包含文件2、文件3和文件4。在下列关于这几个文件包含顺序的叙述中,正确的一条是( )。
A、文件4应出现在文件3之前,文件3应出现在文件2之前 B、文件2应出现在文件3之前,文件3应出现在文件4之前 C、文件3应出现在文件2之前,文件2应出现在文件4之前 D、出现的先后顺序可以任意 得分 评卷人 6
(A卷)第 7 页 共 11 页
三、阅读程序,将运行结果写到各题右侧的空白处(每题4分,共20分)
1.
#define MCRA(m) 3*m
#define MCRB(n,m) 4*MCRA(n)+m main() { int i=3,j=2;
printf(\} 2.
struct s { int x,y;
} data[2]={100,10,20,200}; main()
{ struct s *p=data; printf(\} 3.
#include
{int number,digit,s=0;
scanf(“%d”,&number);/*假若运行时,输入number的值为12123*/ do
{digit=number; number/=10; s+=digit;
}while(number!=0); printf(“%d\\n”,s);
7
(A卷)第 8 页 共 11 页
} 4.
#include
for(i=4;i>=1;i--)
{printf(\for(j=1;j<=4-i;j++)
printf(\printf(\} } 5.
void fun(int *n) { while((*n)--);
printf(\ } main() { int a=100;
fun(&a); } 得分 评卷人 四、阅读程序或程序段,填空(每题4分,共20分)
1. 用以下程序计算1到100的整数的累加和。
8
(A卷)第 9 页 共 11 页
main() {int i,sum=0; i=1;
for(___________________________) {sum+=i; i++; }
printf(″sum=%d\\n″,______________); }
2.下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。
#include <stdio.h> main( ) { int r,m,n;
scanf(″%d%d″,&m,&n);
if (m while(r) {m=n ;n=r;r=_________;} printf(″%d\\n″,n) ; } 3.512个瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天能卖完。 #include ″stdio.h″ main( ) {int day,x1,x2; day=0;x1=512; while (____________________) 9 (A卷)第 10 页 共 11 页 {x2=___________;x1=x2;day++;} printf(″day=%d\\n″,day); } 4. 下面程序用变量count统计文件中字符的个数。 #include “stdio.h” main() { FILE *fp;long count=0; if((fp=fopen(″letter.dat″, ______________))==NULL) {printf(″ cannot open file\\n″);exit(0)} while(!feof(fp)) {__________________________________;count++;} printf(″count=%ld\\n″;count); fclose(fp); } 5. 以下函数的功能是删除字符串s中的所有数字字符。 void dele (char *s) { int n=0,i; for(i=0; s[i]; i++) if(_______________________) s[n++]=s[i]; s[n]=___________________; } 得分 评卷人 五、编程题(每题10分,共20分) 10 (A卷)第 11 页 共 11 页 1.求1+1/2+1/4+??+1/50的值, 并输出结果。 2.从键盘输入20个学生的学号和一门课程成绩,统计计算出全班平均成绩,并输出低于平均分的学生学号和成绩。 11