《C程序设计语言》课程模拟试题一.docx
《《C程序设计语言》课程模拟试题一.docx》由会员分享,可在线阅读,更多相关《《C程序设计语言》课程模拟试题一.docx(26页珍藏版)》请在冰豆网上搜索。
《C程序设计语言》课程模拟试题一
《C程序设计语言》课程模拟试题(一
题号
一
二
三
四
五
总分
分数
得分
评卷人
一、完成下列各题(共20分)
1.请用C语言的表达式表示下列代数式:
(4分)
(1)
(2)x3sin550÷πd
(3)(e=2.71828)
(4)(e=2.71828)
2.请指出下列各个说明中将dd说明成什么:
(6分)
(1)double**dd;
(2)doubledd[10];
(3)double*dd[10];
(4)double(*dd)[10];
(5)double*dd();
(6)double(*dd)();
3.设在程序的变量说明部分已作了如下说明和初始化
inti=3,j=8,k=11,x=0,t=0,*p=&i;
chara='X',b='Y',c='Z';
现若分别执行下列各条语句,请写出各语句执行后变量x的值:
(10分)
(1)x=(c>b)?
k%i:
k/i;
(2)x=k>j+2>i;
(3)x=!
c&&b>>2+a;
(4)x*=c*a**p/b;
(5)x=b++<=c&&++x;
得分
评卷人
二、完成下列各题(共20分)
1.设在PC机上用TurboC执行下列语句,请写出下列各语句的输出结果:
(5分)
(1)printf("%d",strlen("ABCD\t\x04"));
(2)printf("%s",strcat("Beijing,","China"));
(3)printf("%d",sizeof(asin(0.5)));
(4)printf("%d",strcmp("Windows98","Windows95")<0?
2:
-2);
(5)printf("%d",isprint('X'));
2.修改下列程序段,去掉其中的break、continue,保持与原程序段等价。
(5分)
charc[]="AmericanandEnglishPeople";
char*p;inti;
p=c;i=0;
for(;p[i]!
='\0';)
{if(*(p+i)=='')break;
if(isupper(p[i])){
i+=1;continue;}
p[i]=*(p+i)-32;
i++;
}
3.设下列程序经编译、连接后生成的可执行程序的名字为MYFUNC.EXE,若在DOS提示符后输入
C:
\TC>MYFUNCFILE1.TXTFILE2.TXTFILE3.TXT
问该程序的执行完成了什么工作?
(10分)
#include"stdio.h"
main(argv,argc)
intargv;
char*argc[];
{
FILE*fp;inti;
char*ss;
if((fp=fopen(argc[1],"a"))==NULL){
printf("\nCan'topenfile%s!
",argc[1]);
exit
(1);}
ss=argc[2];
for(i=1;*(ss+i)!
='\0';i++)fputc(*(ss+i),fp);
fclose(argc[1]);
}
得分
评卷人
三、完成下列各题(共20分)
1.请写出下列程序的功能:
#defineM200
#include
main()
{
inta[M+1];
inti,j,k=0;
for(i=0;ia[0]=1;
for(j=1;jif(!
a[j-1])
{k++;
for(i=j;i<=M;i+=j)a[i-1]=1;
}
printf("\n%d\n",k);
}
2.请写出下列程序中各printf的输出结果:
#include
intx=1,y=2,z=3;
voidfuncA(int,int);
voidfuncB();
voidmain()
{intx=6;
y=5;
funcA(x++,y);
printf("%d,%d,%d",x,y,z);
}
voidfuncA(inty,intz)
{registerintc=10;
intx;
y=7;x=c;
funcB();
printf("%d,%d,%d,",x,y,z);
funcB();
printf("%d,%d,%d,",x,y,z);
}
voidfuncB()
{staticinta=2;
z=++a;
printf("%d,%d,%d,",x,y,z);
}
得分
评卷人
四、阅读下列程序(共20分)
1.请写出下列程序中各printf的输出结果:
#include"stdio.h"
main()
{
chara[]="MicrosoftWindows98";
intb[][4]={1,2,3,4,11,12,13,14,21,22,23,24};
int*p;char*c=a;
printf("\n%c,%c,",a[5],*c);
c+=5;
printf("%c,%c,",*c,*(c+3));
printf("%d,%d,",*b[1],(*b)[2]);
p=b[1];
printf("%d,%d,",p[3],*(p+2));
printf("%d,%d",*(b[1]+1),*(*b+10));
}
2.请写出下列程序的输出结果:
#include
voidsort(cc,m)
char*cc[];
intm;
{
char*pp;
inti,j,k;
for(i=1;i{k=i;
for(j=i+1;jif(strcmp(cc[k],cc[j])<=0)k=j;
if(k!
=i)
{pp=cc[i];cc[i]=cc[k];cc[k]=pp;}
}
}
main()
{
inti;
char*tt[]={"America","Austria","Russia","Britain","Japan","France"};
sort(tt,5);
for(i=0;i<=5;i++)i<5?
printf("%s,",tt[i]):
printf("%s",tt[i]);
}
得分
评卷人
五、完成下列各题(共20分)
1.请补充下列程序中的空白处,使其能输出下图所示的图形。
#defineM10
#include
main()
{
①;
for(i=0;i<6;i++)
{printf("\n");
for(j=0;j<=M/2-i;j++)printf("");
for(k=0;k<=②;k++)printf("*");
}
for(i=0;i<=5;i++)
{③;
for(j=0;④;j++)printf("");
for(k=0;⑤;k++)printf("*");
}
}
2.下列程序先输入一个6×6的矩阵,然后再输入一个整型变量n,若n≤6,则对6×6的矩阵中的左上角的n×n矩阵进行转置,请编写出实现这一要求的函数transf()。
#defineM6
#include
main()
{
charcc[M][M];
inti,j,n;
for(i=0;ifor(j=0;jscanf("%c",&n);
if(n>M)exit(0);
transf(cc,n);
for(i=0;ifor(j=0;j}
试卷代号:
座位号
江苏广播电视大学转业军人学历教育本科2004年春模拟试题
《C程序设计语言》课程模拟试题
(二)
2004年春
题号
一
二
三
四
五
总分
分数
得分
评卷人
一、完成下列各题(共20分)
1.请用C语言的表达式表示下列代数式:
(5分)
(1)
(2)
(3)(e=2.71828)
(4)
(5)
2.设u、v均为整型变量,且u=8、v=3,请计算下列表达式的值:
(5分)
(1)u&&!
v-3
(2)u++/v
(3)*&u–v
(4)++u>3*v
(5)u||v
3.设在程序的变量说明部分已作了如下说明和初始化
inti=4,j=5,k=6,x=0,t=0,*p=&i;
chara=‘X’,b=‘Y’,c=‘Z’;
现若分别执行下列各条语句,请写出各语句执行后变量t的值:
(10分)
(1)t=k**p;
(2)t=(b--<=a)?
i:
j;
(3)t=!
c&&c<<2+b;
(4)t=k>j>i;
(5)t=++b>c&&t=5;
得分
评卷人
二、完成下列各题(共20分)
1.设在PC机上用TurboC执行下列语句,请写出下列各语句的输出结果:
(5分)
(1)printf(“%d”,strlen(“C语言程序设计”));
(2)printf(“%d”,strcmp(“Windows98”,”Windows95”)>0?
1:
-1);
(3)printf(“%d”,sizeof(“xyz\t\042”));
(4)printf(“%d”,isalpha('P'));
(5)printf(“%s”,strupr(“Jiangsu”));
2.请指出下列两个程序段在什么情况下等价,在什么情况下不等价:
(5分)
inti,sum=0;inti,sum=0;
scanf("%d",&i);scanf("%d",&i);
while(i<=100)do{sum+=i;
{sum+=i;i++;
i++;}}while(i<=100)
printf("\n%d",sum);printf("\n%d",sum);
3.设下列程序经编译、连接后生成的可执行程序的名字为MYF.EXE,若在DOS提示符后输入
C:
\TC>MYFFA.TXTFB.TXT
问该程序执行完成了什么工作?
(10分)
#include"stdio.h"
main(argc,argv)
intargc;
char*argv[];
{
FILE*fpr,*fpw;
if((fpr=fopen(argv[2],"r"))==NULL){
printf("\nFile%snotfound!
",argv[2]);
exit
(1);}
if((fpw=fopen(argv[1],"a"))==NULL){
printf("\nCan'topenfile%s!
",argv[1]);
exit
(1);}
do{fputc(fgetc(fpr),fpw);}
while(!
feof(fpr));
}
得分
评卷人
三、完成下列各题(共20分,每题10分)
1.修改下列程序段,去掉其中的break、continue,保持与原程序段等价。
charc[]="MicroSoftWindows98";
char*p;
inti;
p=c;
i=0;
while(p[i]!
='\0')
{
if(*(p+i)=='')break;
if(isupper(p[i])){
i+=1;continue;}
p[i]=*(p+i)-32;
i++;
}
2.请写出下列程序的输出结果:
#include"stdio.h"
main()
{char*cc="AB9\11STUDENT";
inti,c;
for(i=1;(c=cc[i])!
='\0';i++){
switch(c){
case'A':
putchar(c+1);i=i+5;
case'B':
putchar(c+4);continue;
case'9':
putchar(c);break;
case'S':
while((c=cc[++i])!
='\0');continue;
case'\\':
putchar('X');break;
case'1':
case9:
putchar('Z');continue;}
putchar('*');}
}
得分
评卷人
四、阅读下列程序(共20分,每题10分)
1.请写出下列程序中各printf的输出结果:
#include"stdio.h"
intx=5,y=6,z=7;
voidfuna(int,int);
voidfunb();
voidmain()
{intz=10;
y=11;
printf("\n%d,%d,%d,",x,y,z);
funa(x,y);
printf("%d,%d,%d",x,y,z);
}
voidfuna(inta,intb)
{intz=12;
y=a;
printf("%d,%d,%d,",x,y,z);
x=b;
funb();
printf("%d,%d,%d,",x,y,z);
}
voidfunb()
{inty=30;
printf("%d,%d,%d,",x,y,z);
}
2.请写出运行下列程序后的输出结果:
#defineNULL0
#include"stdio.h"
structmylist{
chard1,d2;
structmylist*next;};
typedefstructmylistNode;
typedefstructmylist*LINK;
voidplist();
LINKbuildl();
main()/*函数定义*/
{LINKhead;
head=buildl("ABCDEFGHIJ");
plist(head);
}
LINKbuildl(cc)/*函数定义*/
char*cc;
{LINKhead,tail;
intk;
if(*cc){
head=(LINK)malloc(sizeof(Node));
head->d1=cc[0];head->d2=cc[1];
tail=head;
for(k=2;cc[k]!
='\0';k+=2){
tail->next=(LINK)malloc(sizeof(Node));
tail=tail->next;
tail->d1=*(cc+k)+1;tail->d2=*(cc+k+1)+1;}
tail->next=NULL;}
return(head);
}
voidplist(xx)/*函数定义*/
LINKxx;
{if(xx!
=NULL){
if(xx->next!
=NULL)
printf("%c-->",xx->d1);
else
printf("%c\n",xx->d1);
plist(xx->next);}
}
得分
评卷人
五、完成下列各题(共20分,每题10分)
1、请编写一完整的C程序把一个二维数组的行列元素互换,构成一个新的二维数组。
设原数组为4行3列,其中各数据元素由用户输入,要求分别输出原数组和新数组。
2、请补充下列程序中的空白处,使其能将name数组中的字符串按字典序从大到小输出。
#include"stdio.h"
main()
{
voidsort();
inti,n=5;
char*name[]={"MS-DOS","Windows","UCDOS","CCDOS","Unix"};
sort(name,n);
for(i=0;i}
voidsort(cc,m)
char*cc[];
intm;
{
②
inti,j,k;
for(i=0;i{k=i;
for(j=i+1;jif( ③ )
k=j;
if( ④ )
{pp=cc[i];cc[i]=cc[k];cc[k]=pp;}
}
}
试卷代号:
座位号
江苏广播电视大学转业军人学历教育本科2004年春模拟试题
《C程序设计语言》课程模拟试题(三)
2004年春
题号
一
二
三
四
五
总分
分数
得分
评卷人
一、完成下列各题(共20分)
1.请用C语言的表达式表示下列代数式:
(5分)
(1)
(2)
(3)(e=2.71828)
(4)
(5)
2.设u、v均为整型变量,且u=6、v=2,请计算下列表达式的值:
(5分)
(1)u*!
v
(2)u/++v
(3)u-*&v
(4)u--%v
(5)u!
=v
3.设在程序的变量说明部分已作了如下说明和初始化
inti=2,j=3,k=4,x=0,t=0,*p=&i;