《C程序设计语言》课程模拟试题一doc.docx
- 文档编号:27024228
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:31
- 大小:19.95KB
《C程序设计语言》课程模拟试题一doc.docx
《《C程序设计语言》课程模拟试题一doc.docx》由会员分享,可在线阅读,更多相关《《C程序设计语言》课程模拟试题一doc.docx(31页珍藏版)》请在冰豆网上搜索。
《C程序设计语言》课程模拟试题一doc
《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;i a[0]=1; for(j=1;j if(! 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;j if(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;i for(j=0;j scanf("%c",&n); if(n>M)exit(0); transf(cc,n); for(i=0;i for(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;j if( ③ ) 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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计语言 程序设计语言 课程 模拟 试题 doc