《《C程序设计语言》课程模拟试题(一).doc》由会员分享,可在线阅读,更多相关《《C程序设计语言》课程模拟试题(一).doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C程序设计语言课程模拟试题(一题号 一 二 三 四 五 总分 分数 得分 评卷人 一、完成下列各题(共20分)1请用 C 语言的表达式表示下列代数式:(4分)(1) (2) x3sin550d(3) (e=2.71828)(4) (e=2.71828)2请指出下列各个说明中将dd 说明成什么:(6分)(1) double *dd; (2) double dd10;(3) double *dd10;(4) double (*dd)10; (5) double *dd( ); (6) double (*dd)( ); 3设在程序的变量说明部分已作了如下说明和初始化int i=3,j=8,k=11,
2、x=0,t=0,*p=&i; char a=X,b=Y,c=Z; 现若分别执行下列各条语句,请写出各语句执行后变量 x 的值:(10分)(1) x=(c b) ? k%i : k/i; (2) x= k j+2 i; (3) x=!c & b2 + a; (4) x*=c*a* *p/b; (5) x=b+ = c & +x; 得分 评卷人 二、完成下列各题(共20分) 1设在 PC 机上用Turbo C执行下列语句,请写出下列各语句的输出结果:(5分)(1) printf(%d,strlen(ABCDtx04); (2) printf(%s,strcat(Beijing,China); (3
3、) printf(%d,sizeof(asin(0.5); (4) printf(%d,strcmp(Windows98,Windows 95)MYFUNC FILE1.TXT FILE2.TXT FILE3.TXT问该程序的执行完成了什么工作?(10分)#include stdio.hmain(argv, argc)int argv;char *argc ;FILE *fp; int i;char *ss;if(fp=fopen(argc1,a)=NULL) printf(nCant open file %s!,argc1); exit(1); ss=argc2;for(i=1; *(ss+
4、i)!=0; i+) fputc(*(ss+i),fp); fclose(argc1); 得分 评卷人 三、完成下列各题(共20分) 1请写出下列程序的功能:#define M 200#include main( ) int aM+1; int i,j,k=0; for(i=0;iM+1; i+) ai=0; a0=1; for(j=1; jM+1; j+) if(!aj-1) k+; for(i=j;i=M;i+=j) ai-1=1; printf(n%dn,k); 2请写出下列程序中各 printf 的输出结果:#include int x=1,y=2,z=3;void funcA(int
5、 ,int );void funcB(); void main( ) int x=6; y=5; funcA(x+,y); printf(%d,%d,%d,x,y,z);void funcA(int y, int z) register int c=10; int x; y=7; x=c; funcB( ); printf(%d,%d,%d,x,y,z); funcB( ); printf(%d,%d,%d,x,y,z); void funcB( ) static int a=2; z=+a; printf(%d,%d,%d,x,y,z); 得分 评卷人 四、阅读下列程序(共20分) 1请写出
6、下列程序中各 printf 的输出结果:#include stdio.hmain( ) char a =Microsoft Windows 98; int b 4=1,2,3,4,11,12,13,14,21,22,23,24; int *p; char *c=a; printf(n%c,%c,a5,*c); c+=5; printf(%c,%c,*c,*(c+3); printf(%d,%d,*b1,(*b)2); p=b1; printf(%d,%d,p3,*(p+2); printf(%d,%d,*(b1+1),*(*b+10); 2请写出下列程序的输出结果:#include void
7、sort(cc,m)char *cc ;int m; char *pp; int i,j,k; for(i=1;im-1;i+) k=i; for(j=i+1;jm;j+) if(strcmp(cck,ccj)=0) k=j; if(k!=i) pp=cci; cci=cck; cck=pp; main( ) int i; char *tt=America,Austria,Russia,Britain,Japan,France; sort(tt,5); for(i=0;i=5;i+) i5?printf(%s, tti):printf(%s, tti); 得分 评卷人 五、完成下列各题(共20
8、分) 1请补充下列程序中的空白处,使其能输出下图所示的图形。#define M 10#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下列程序先输入一个66的矩阵,然后再输入一个整型变量 n,若 n6,则对66的矩阵中的左上角的nn矩阵进行转置,请编写出实现这一要求的函数 tr
9、ansf( )。#define M 6#include main( ) char ccMM; int i,j,n; for(i=0;iM; i+) for(j=0;jM)exit(0); transf(cc,n); for(i=0;iM; i+) printf(nn); for(j=0; j 3*v (5) u | v 3设在程序的变量说明部分已作了如下说明和初始化int i=4,j=5,k=6,x=0,t=0,*p=&i; char a=X,b=Y,c=Z; 现若分别执行下列各条语句,请写出各语句执行后变量 t 的值:(10分)(1) t=k* *p; (2) t=(b-=a) ? i:j;
10、 (3) t=!c & c j i; (5) t=+bc & t=5 ; 得分 评卷人 二、完成下列各题(共20分) 1设在 PC 机上用 Turbo C 执行下列语句,请写出下列各语句的输出结果:(5分)(1) printf(“%d”,strlen(“C语言程序设计”); (2) printf(“%d”,strcmp(“Windows 98”,”Windows 95”)0 ? 1:-1 ); (3) printf(“%d”,sizeof(“xyzt042”); (4) printf(“%d”,isalpha(P); (5) printf(“%s”,strupr(“Jiangsu”); 2请指
11、出下列两个程序段在什么情况下等价,在什么情况下不等价:(5分) int i,sum=0; int i,sum=0; scanf(%d,&i); scanf(%d,&i); while(i=100) do sum+=i; sum+=i; i+; i+; while(iMYF FA.TXT FB.TXT问该程序执行完成了什么工作?(10分)#include stdio.hmain(argc,argv)int argc;char *argv;FILE *fpr,*fpw;if(fpr=fopen(argv2,r)=NULL) printf(nFile %s not found !,argv2); e
12、xit(1); if(fpw=fopen(argv1,a)=NULL) printf(nCant open file %s!,argv1); exit(1); do fputc(fgetc(fpr),fpw); while(!feof(fpr); 得分 评卷人 三、完成下列各题(共20分,每题10分) 1修改下列程序段,去掉其中的break、continue,保持与原程序段等价。char c=MicroSoft Windows 98;char *p;int i;p=c;i=0;while(pi!=0) if(*(p+i)= ) break; if(isupper(pi) i+=1; conti
13、nue; pi=*(p+i)-32; i+; 2请写出下列程序的输出结果:#include stdio.hmain() char *cc=AB911STUDENT; int i,c; for(i=1;(c=cci)!=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: case 9: putchar(
14、Z); continue; putchar(*); 得分 评卷人 四、阅读下列程序(共20分,每题10分) 1请写出下列程序中各 printf 的输出结果:#include stdio.hint x=5,y=6,z=7;void funa(int , int);void funb();void main() int z=10; y=11; printf(n%d,%d,%d,x,y,z); funa(x,y); printf(%d,%d,%d,x,y,z); void funa(int a,int b) int z=12; y=a; printf(%d,%d,%d,x,y,z); x=b; fu
15、nb(); printf(%d,%d,%d,x,y,z); void funb() int y=30; printf(%d,%d,%d,x,y,z); 2请写出运行下列程序后的输出结果:#define NULL 0#include stdio.hstruct mylist char d1,d2; struct mylist *next; ;typedef struct mylist Node;typedef struct mylist *LINK;void plist();LINK buildl();main( ) /* 函数定义 */ LINK head; head=buildl(ABCDE
16、FGHIJ); plist(head);LINK buildl(cc) /* 函数定义 */char *cc; LINK head,tail; int k; if (*cc) head=(LINK)malloc(sizeof(Node); head-d1=cc0; head-d2=cc1; tail=head; for(k=2; cck!=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);
17、void plist(xx) /* 函数定义 */ LINK xx; if(xx!=NULL) if(xx-next!=NULL) printf(%c-,xx-d1); else printf(%cn,xx-d1); plist(xx-next); 得分 评卷人 五、完成下列各题(共20分,每题10分) 1、请编写一完整的 C 程序把一个二维数组的行列元素互换,构成一个新的二维数组。设原数组为 4 行 3 列,其中各数据元素由用户输入,要求分别输出原数组和新数组。2、请补充下列程序中的空白处,使其能将 name 数组中的字符串按字典序从大到小输出。#include stdio.hmain()
18、void sort(); int i,n=5; char *name=MS-DOS,Windows,UCDOS,CCDOS,Unix; sort(name,n); for(i=0;in;i+) printf(n%s,); void sort(cc,m)char *cc ;int m; int i,j,k; for(i=0;im-1;i+) k=i; for(j=i+1;jm;j+) if() k=j; if() pp=cci; cci=cck; cck=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设在程序的变量说明部分已作了如下说明和初始化int i=2,j=3,k=4,x=0,t=0,*p=&i;