江苏省c语言二级模拟题_第1页
江苏省c语言二级模拟题_第2页
江苏省c语言二级模拟题_第3页
江苏省c语言二级模拟题_第4页
江苏省c语言二级模拟题_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

n更多企业学院: 中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+ 324份资料员工管理企业学院67套讲座+ 8720份资料工厂生产管理学院52套讲座+ 13920份资料财务管理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料模拟题1一、选择题(用答题卡答题,答案依次填在2130答题号内)A21以下叙述中正确的是21。AC程序中注释部分可以出现在程序中任何合适的地方B花括号“”和“”只能作为函数体的定界符C构成C程序的基本单位是函数,所有函数名都可以由用户命名D分号是C语句之间的分隔符,不是语句的一部分C22若以下选项中的变量已正确定义,则正确的赋值语句是22。Ax1=26.8%3; B1+2=x2; Cx3=0x12;Dx4=1+2=3;D23有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b ;b=p5;b中的值是23。A 5 B6 C8D9D24有如下定义 struct personchar name9; int age; struct person class10= Johu, 17, Paul, 19, Mary, 18, Adam,16;根据上述定义,能输出字母M的语句是24。Aprintf( %cn,);Bprintf(%cn,1);Cprintf(%cn,1);Dprintf(%cn,0);AB25有以下程序main(int argc, char *argv ) int n, i=0; while(argv1i!=0) n=fun( ); i+; printf(%dn, n*argc); int fun( ) static int s=0; s+=1; return s;假设程序经编译、连接后生成可执行文件exam.exe,若键入以下命令行exam 123则运行结果为 25。A6 B8 C3 D4C26当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是26。Ac=b=a; B(a=c)(b=c); C(a=c)&(b=c);Da=c=b;CB27有以下程序段 main( ) int a=5,*b,*c; c=&b;b=&a; 程序在执行了c=&b;b=&a;语句后,表达式:*c的值是27。A变量a的地址 B变量b中的值C变量a中的值D变量b的地址AB28设有如下的变量定义:int i=8,k,a,b;unsinged long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是28。Aa+=a-=(b=4)*(a=3)Bx%(-3)Ca=a*3=2Dy=float(i)AC29当执行以下程序段时29。x=-1;dox=x*x;while(!x);A循环体将执行一次 B循环体将执行两次C循环体将执行无限次D系统将提示有语法错误D30fread(buf,32,2,fp)的功能是30。A从fp文件流中读出整数32,存放在buf中B从fp文件流中读出32个字节的字符,存放在buf中C从fp文件流中读出整数32和2,存放在buf中D从fp文件流中读出2块32个字节的字符,存放在buf中二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)l 基本概念题(共5分)1设有以下变量定义,并已赋确定的值char w; int x; float y; double z;则表达式:w*x+z-y所求得的数据类型为 double 。2C语言中,有符号短整型的取值范围是 -3276832767 。3若有以下定义和语句: int a4=0,1,2,3, *p; p=&a2; 则*p的值是 1 。4在C语言中,形参的缺省存储类型是 auto 。5若执行fopen函数时发生错误,则函数的返回值是 0 。l 阅读程序题(共13分)6下列程序执行后的输出结果的第一行是 a=6 ,第二行是 b5=10 。#includevoid func(int *a, int b ) int i; for(i=0;i=5;i+) *(b+i)+=*a+i; *a=*(b+i); main() int a, b10, i; a=0; for(i=0;i10;i+) bi=i; func(&a, b); printf(“a=%dn”a); printf(“b5=%dn”,b5);7以下程序执行后输出结果的第一个数是 6 ,第三个数是 4 ,最后一个数是 1 。void fun(int *a, int i, int j) int t; if(ij) t=ai; ai=aj; aj=t; fun(a, +i, -j); main() int a =1,2,3,4,5,6, i; fun(a,0,5); for(i=0;i6;i+) printf(“%d”, ai); 8以下程序程序运行后的输出结果 1 65 1.5 6.5 。#includemain( )char str 20=Hello,Beijing,*p=str; printf(%dn,strlen(p+20);9以下程序运行后,输出结果是 。#include fun(char *w,int n) char t,*s1,*s2;s1=w;s2=w+n-1;while(s1s2) t=*s1+; *s1=*s2-;*s2=t;main( ) char *p;p= ;fun(p,strlen(p); puts(p);10以下程序的输出结果是 5,3,3,5 。void swap1(int c ) int t;t=c0; c0= c1; c1=t;void swap2(int c0,int cl) int t;t=c0; c0=cl; cl=t;main( ) int a2=3,5,b2=3,5;swapl(a); swap2(b0,b1);printf(%d, %d ,%d, %dn,a0,a1,b0,b1);11以下程序的输出结果是 6 。int fun(char *s) char *p=s; while(*p!=0) p+;return (p-s); main() int len=0; len=fun(hello!); printf(%dn,len);12以下程序运行时输出结果第一行是 *ptr1=7,*ptr2=5 ,第二行是 a=7,b=5 。swap (int *p1, *p2)int p; p=*p1; *p1=*p2; *p2=p;main() int a=5, b=7, *ptr1, *ptr2; ptr1=&a, ptr2=&b; swap (ptr1,ptr2); printf(“*ptr1=%d,*ptr2=%dn”,*ptr1,*ptr2); printf(“a=%d,b=%dn”,a,b);13以下程序运行后输出结果的第一行是 1,4,7,10,22 ,第二行是 1,3,9,27,40 。 extern int m1, m2; void fun(int n, int *p1, int *p2) int i; *p1=1; *p2=1; for(i=1;i=n;i+) *p1+=3;*p2*=3; m1+=*p1; m2+=*p2; int m1, m2; main() int i, k14, k24; for(i=0;i4;i+) fun(i, &k1i,&k2i); for (i=0;i4;i+) printf(“%d,”,k1i; printf(“%dn”,m1); for(i=0;i4;i+) printf(“%d,”,k2i); printf(“%d”,m2);l 完善程序题(共12分)14以下程序中函数maxmin的功能为对于x中存储的一个任意的四位整数,求出(1)组成以这个整的四个数字由大到小排列后构成的最大的四位数,(2)组成以这个整数的四个数字由小到大排列后构成的最小的四位数。程序段如下:#include void maxmin(int x,int *pmax,int *pmin) int num4,i,j,k,temp; *pmax=0;*pmin=0; for(i=0;i4;i+) numI=x%10;x= x/10 ; for(i0;i3;i+) k=i; for(j=i+1;j4;j+) if (numknumj) k=j; if ( k!=i )temp=numI;numI=numk;numk=temp; for(i=0;i4;i+) *pmax=*pmax*10+ *(num+i)或numi ;/*生成最大的四位数*/*pmin=*pmin*10+ *(num+3-i)或num3-i ;*生成最小的四位数*/ main() int n=3169,max=0,min=0; maxmin(n,&max,&min); printf(“n%d%d”,max,min);15给定程序中,函数fun的功能是:求ss所指字符串数组中长度最长的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指变量中。ss所指字符串数组中共有M个字符串,且串长N。请在程序的下划线处填上正确的内容,使程序得到正确的结果。#include #define M 5#define N 20int fun(char (*ss) N, int *n) int i, k=0, len=0; for(i=0; i*n) *n=len ; k=i; return(k);main() char ssMN=shanghai,guangzhou,beijing,tianjing,nanjing; int n,k,i; printf(nThe original strings are :n); for(i=0;iM;i+)puts(ssi); k=fun(ss,&n); printf(nThe length of longest string is : %dn,n); printf(nThe longest string is : %sn,ssk);16给定程序MODI1.C中函数fun的功能是:求出字符串中最后一次出现的子字符串的地址,通过函数值返回,在主函数中输入从此地址开始的字符串;若未找到,则函数值为NULL。例如,当字符串中的内容为:“abcdabfacdx“,t中的内容为:”ab“时,输出结果应是abfacdx,当字符串中的内容为:“abcdabfabcdx”,t中的内容为:”abd“时,则程序的输出信息:not be found!#include #include #include char *fun(char *s,char *t) char *p,*r,*a;a=NULL; while(*s) p=s ;r=t; while(*r) if(*r= =*p) r+ ;p+; else break; if( *r= =0 )a=s; s+ ; return a;main( ) char s100,t100,*p; clrscr( ); printf(nPlease enter string S :); scanf(%s,s); printf(nPlease enter substring t :); scanf(%s,t); p=fun(s,t); if(p) printf(nThe result is : %sn,p); else printf(nNot found !n); 17给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。#include #include #include typedef struct aa int data; struct aa *next; NODE;fun ( NODE *h ) int max=-1; NODE *p; p=h-next; while(p) if(p-datamax ) max=p-data; p=p-next; return max;outresult(int s, FILE *pf) fprintf(pf,nThe max in link : %dn,s);NODE *creatlink(int n, int m) NODE *h, *p, *s, *q; int i, x; h=p=(NODE *)malloc(sizeof(NODE);h-data=9999; for(i=1; idata=rand()%m;s-next=p-next; p-next=s;p=p-next; p-next= NULL ; return h;outlink(NODE *h, FILE *pf) NODE *p; p=h-next; fprintf(pf,nTHE LIST :nn HEAD); while(p) fprintf(pf,-%d ,p-data);p=p-next; fprintf(pf,n); main( ) NODE *head; int m; clrscr(); head=creatlink(12,100); outlink(head,stdout); m=fun(head); printf(nTHE RESULT :n); outresult(m, stdout); 模拟题2 一、选择题(用答题卡答题,答案依次填在2130答题号内)21若调用一个函数,且此函数中没有return语句,则正确的说法是21。A该函数没有返回值 B返回若干个系统默认值C能返回一个用户所希望的函数值 D返回一个不确定的值22设有以下宏定义:#define W 5#define L W+2则执行赋值语句p=L*2;(p为int型变量)后,p的值为22。A6 B7 C8 D923若有以下定义和语句#include int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL;则以下选项中错误的语句是23。A*q=0; Bw=p; C*p=a; D*p=*w;24若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是24。Anum%2=1B!(num%2=0)C!(num%2)Dnum%225若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是 25。int t33, *pt3, k;for (k=0;ksex);28设有如下的变量定义:int i=8,k,a,b;unsinged long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是28。Aa+=a-=(b=4)*(a=3)Bx%(-3)Ca=a*3=2Dy=float(i)29能正确表示a和b同时为正或同时为负的逻辑表达式是29。A(a=0b=0)&(a0b =0&b=0)&(a0&b 0)&(a+b030若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为 30。A0 B1C-1 D一个非0值二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)l 基本概念题(共5分)1在C语言中大部分执行语句都含有关键字,除这些语句外不含关键字的非空操作语句是 表达式语句 。2若有说明:int x 3 = 1,3,5,7,9,11,13;则x数组的行数为 3 。3有以下程序 main( ) char *s =one,two,three,*p; p=s1; printf(%c,%sn,*(p+1),s0); 执行后输出结果是 w,one 。4C程序中,文件可以用 ASCII码 和二进制两种代码形式存放。 5若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式 x= =0|x= =1l 阅读程序题(共13分)6下面程序的输出结果是 54 。fun(int b ,int n) static int i,r=0; for(i=0;i=n;i+) r+=bi; return r;main( ) int x,a =2,3,4,5,6,7,8,9; x=fun(a,3); x+=fun(a+3,3); printf(%dn,x);7下列程序的执行结果是 -12 。#include long fun(char s ) long n;int sn; for(;*s= = ;s+);/*去掉字符串前空格*/ sn=(*s= =-)? -1:1; if(*s= =+|*s=-) s+; for(n=0;*s=0&*s=9);s+) n=10*n+(*s-0); return sn*n; main( ) printf(%ld,fun(-12x3y4);8以下程序执行后输出的第一个数是 3 ,第二个数是 5 。main( ) int x=5,n=3,s,j; for(j=0;jk=0x; printf(%x,%xn,s-d.x,s-d.y); 10以下程序运行时输出的第一个数是 1 ,第二个数是 2 ,第三个数是 3 。main() static int a33, i, j; for(i=0;i3;i+) for(j=0;j3;j+) switch(abs(i-j) case 0: if(i= =0|i= =2) aij+=3; else aij+; break; case 1: aij+=2; break; case 2: aij+=3; printf(“%d,%d,%d”,a11, a12, a20);11以下程序执行后,输出结果是 5,4,3,2,1。void f (int a ,int i,int j) int t;if (ij) t=ai; ai= aj; aj=t;f(a,i+1,j-1);main( ) int i,aa5=1,2,3,4,5;f (aa,0,4);for(i=0;i5;i+) printf(%d,aai);printf(n);12有以下程序,main( )int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf( %d %d %3.1f %3.1fn,a,c,f,x);程序运行后的输出结果是 1 65 1.5 6.5。 13以下程序运行后,输出结果的第一个数为 1 ,最后一个数为 5 。#includefun(char *w, int n) char t, *s1, *s2; s1=w; s2=w+n-1; while(s1s2) t=*s1+; *s1=*s2-; *s2=t; main() char *p; p=”12345”; fun(s,strlen(p); puts(p); l 完善程序题(共12分)14函数fun的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0到p(含p,p小于n-1)的数组元素平移到数组的最后。例如:一维数组中的原始内容为:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。#include #define N 80void fun(int *w,int p,int n) int i,j;int aN;for(i=0;i=p;i+) ai=wi;for(i=p+1,j=0;in;i+,j+) wj=wi; ;for(i=0;i=p;i+) wn-p-1+i=ai; ; main( ) int aN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15; int i,p,n=15; printf(The original data:n); for(i=0;in;i+)printf(%3d,ai); printf(nEnter p:);scanf(%d,&p); fun(a,p,n); printf(nThe data after moving:n); for(i=0;in;i+)printf(%3d,ai); 15函数fun的功能是:将M行N列的矩阵中的数据,按行的顺序依次放在一维数组中,一维数组中的元素的个数存放在形参n所指的存储单元中。例如:矩阵中的数据为,则一维数组中各元素的值分别是11、12、13、14、21、22、23、24、31、32、33、34。void fun(int (*s)10,int *b,int *n,int mm,int nn) int i,j; for(i=0;imm;s+,i+) for(j=0;jnn;j+) *(b+i*nn+j)= (*s)j; ; *n=mm*nn; ;main( ) int w1010=11,12,13,14,21,22,23,24,31,32,33,34,i,j; int a100=0,n=0; printf(The matrix:n) ; for(i=0;i3;i+) for(j=0;j4;j+) printf(%3d,wij) ; printf(n) ; fun(w,a,&n,3,4); printf(The A array:n) ; for(i=0;in;i+) printf(%3d,ai);printf(nn) ; 16函数fun的功能是:将带头结点单向链按data域由大到小排序(排序时不考虑头结点),主函数用随机函数为各结点data域赋值,头结点data域赋值为0。#include #include struct aa int data;struct aa *next;void fun(struct aa *p) int temp;struct aa *lst; for(p=p-next;p-next!=NULL;p=p-next) for(lst=p-next;lst!=NULL;lst=lst-next) if(lst-datap-data) temp=lst-data; ;lst-data=p-data;p-data=temp; main( ) int i,n,m=100; struct aa *h=NULL,*s=NULL,*p=NULL; clrscr( ); s=(struct aa *)malloc(sizeof(struct aa); h=s;h-data=0;h-next=NULL; printf(please input n:);scanf(%d,&n); for(i=1;idata=rand()%m; p-next=NULL; ;printf(%d ,p-data); s-next=p; ; s=s-next; fun(h); printf(n); for(h=h-next;h!=NULL;h=h-next) printf(%d ,h-data); 17函数fun的功能是:求任意两个正整数的最小公倍数和最大公约数,最小公倍数放在指针变量bei所指的变量中,最大公约数放在指针变量yue所指的变量中。void fun(int m,int n,int *bei,int *yue) int s=1,i; if(mn)s=m; m=n; n=s; for(i=2,s=1;i0); Dif(b=0)m=l;n=2;24有以下程序 main( ) int i=l,j=1,k=2; if(j+|k+)&i+) printf(%d,%d,%dn,i,j,k); 执行后输出结果是24。A1,1,2 B2,2,1 C2,2,2 D2,2,325设有说明语句:char a=72;则变量a25。A包含1个字符B包含2个字符C包含3个字符D说明不合法26若已经定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 26 。A函数调用可以作为独立的语句存在B函数调用可以作为一个函数的实参C函数调用可以出现在表达式中 D函数调用可以作为一个函数的形参27已定义以下函数fun(char *p2,char *p1) while(*p2=*p1)!= 0) p1+;p2+;函数的功能是27。A将p1所指字符串复制到p2所指内存空间B将p1所指字符串的地址赋给指针p2C对p1和p2两个指针所指字符串进行比较D检查p1和p2两个指针所指字符串中是否有028以下叙述中不正确的是28。A函数中的自动变量可以赋初值,每调用一次,赋一次初值B在调用函数时,实在参数和对应形参在类型上只需赋值兼容 D函数形参可以说明为register变量29有如下程序 #define N 2 #define M N+1 #define NUM 2*M+1 main( ) int i; for(i=1;i=NUM;i+) printf(%dn,i); 该程序中的for循环执行的次数是29。A5 B6 C7 D8 30执行程序段:int x=1,y=2; x=xy;y=yx;x=xy;后x和y的值分别是30。A1和2B2和2C2和1D1和1二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)l 基本概念题(共5分)1C语言编写的程序必须有且只有一个 main 函数。 2C语言数据类型分四大类:基本类型,构造类型,指针类型,空类型。基本类型中又分:整型、实型、字符型、枚举型。构造类型又分:数组类型、 结构体类型 、公用体类型。3若要使指针p指向一个double类型的动态存储单元,请在空白处填上适当的内容。 p= (double *) malloc(sizeof(double); 4在程序中需要调用库函数abs时必须包含头文件 math.h 。5设有以下变量定义,并已赋确定的值: char w; int x; float y; double z; 则表达式w*x+z-y所求得的数据类型为 math.h 。l 阅读程序题(共13分)6以下程序执行后输出的第一个数据是 123 ,第二个数据是 0 。#include main( ) FILE *fp; int i,k=0,n=0;fp=fopen(d1.dat,w);for(i=1;i4;i+) fprintf(fp, %d,i);fclose(fp);fp=fopen(d1.dat,r);fscanf(fp, %d%d,&k, &n); printf(%d %dn,k, n) ;fclose(fp);7以下程序的输出结果是 BCDEFG 。 #include space(char *s) int i,t;char str80; for(i=0,t=0;si!=0;i+=2) if(!isspace(*(s+i))&(*(s+i)!=a) strt+=toupper(si); strt=0; strcpy(s,str); main() char st80=a b c d e f g; space(st); puts(st); 8以下程序的输出是 120 。#include #include long fun(int m) if (m0) return(m*fun(m-1); else if(m= =0) return 1L;main( ) int k=5; clrscr( ) ; printf(%d!=%ldn,k,fun(k);9以下程序输出结果的第一行是 1 2 ,第二行是 3 4 ,第三行是 5 6 。main() int a23=1,3,5,2,4,6; int b32,i,j; for(i=0;i2;i+) for(j=0;j3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论