资源描述
试卷3一、单项选择题(共20小题;每小题1分,共20分) 1、下列常量不合法的是( )。A1.5E-2 BBASIC C0x12 D“good”2、下列变量名中不合法的是( )。AiCount BStu_NO CINT Dvc+3、设变量已正确定义并赋值,以下正确的表达式是( )。Ab=7+ Bx=3,+y Ca=7%3.0 Dx=y+1=24、表达式sizeof(double)-sizeof(3.1f)+3/2的值是( )。A4 B5 C5.5 D1.55、下列各语句序列判别变量a、b的大小,若ab则交换它们的值,其中正确的是( )。Aif (ab) t=a; a=b; b=t; Bif (ab) a=b; b=a; Cif(ab) a=b; b=a; Dif(ab) t=a; a=b; b=t;6、已知有程序段:int a=1,*p=&a,*q;q=&p;*q=3;printf(%dn,a);则该程序段正确执行后输出结果为( )。A1 B3 C. 该程序段有语法错 D. 该程序段没有输出结果7、若有说明:int *p,m=3,n;,则以下正确的程序段是( )。Ap=&n;scanf(%d,&p); Bp=&n;scanf(%d,*p);Cscanf(%d, &n);*p=n; Dp=&n;*p=m; 8、设有以下说明语句,则下面的叙述中不正确的是( )。 typedef struct student long StuNO; char Stuname9;char sex;float cscore;STU; Atypedef是给类型起别名 BSTU是结构变量名 CStuNO是结构体STU的一个成员 DSTU是结构类型名9、有定义或声明:int *myf(float x, long y);,若以下选项中的正确的是( )。 A. myf是指针数组; B. myf是数组指针; C. myf是指针函数; D. myf是函数指针;10、C语言中函数返回值的类型是由( )决定的。A传递给函数的实参类型 Breturn语句中的表达式类型C调用该函数的主调函数类型 D定义函数时所指定的函数返回值类型11、若有宏定义:#define FUN(x) x%x,则表达式FUN(2+3)的值为( )。A5 B0 C6 D712、设有定义语句:char c1=32,c2=32;则以下表达式中值为0的是( )。A. c1c2 B. c1&c2 C.c2 D. c1|c213、若有以下定义语句:int m=5,4,3,2,1,i=4;,则下面对m数组元素的引用中错误的是( )。Ami Bm2*2 Cmm0 Dmmi14、以下对二维数组arr的定义正确的是( )。Aint arr5=1,2,3; Bint arr1=1,2,3,4,5,6;Cint arr33=0; Dint arr23=1,2,3,4,5,6,7,8;15、若有定义语句:char s=hello0theworld;,则strlen(s)的值是( )。A5 B6 C14 D1516、有定义int i=88,j=99,*p,*q;p=&i;q=&j; p=q;则printf(%d %d,*p,*q)结果是( )。A88 88 B88 99 C99 99 D99 8817、已知有定义int a8=0,*p=a;,则不能表示a1元素的值的是( )。A*(p+1) B*(+a) Cp1 D*&a118、有定义如下:struct test int a;int b2;s3=111,1,2,222,3,4,333,5,6;则s1.b0的值是( )。A. 3B. 4C. 5D. 619、若要以写的方式创建新的文本文件,则在fopen函数中使用的打开方式是( )。Aw Brb Crb+ Da+b20、若有定义:int a52=7,6,5,4,3,2,1, *p=a1;则*(+p)的值是( )。 A.2 B.3 C.4 D.5二、阅读程序题,写出下列程序的运行结果。(本题10小题,每小题3分,共30分)1、main()FILE *fp;int i,buf=8,7,6,5,4,3,2,1; fp=fopen(mytest.dat,wb+); fwrite(buf,sizeof(int),8,fp); fseek(fp,sizeof(int)*4,SEEK_SET); fread(buf,sizeof(int),4,fp);fclose(fp); for(i=0;i8;i+) printf(%d,bufi);输出结果为:_。2、main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(a=%d,b=%dn,a,b); 输出结果为:_。3、#include main() char p20=a,b,c,d,q=abc, r=abcde; strcpy(p+strlen(q),r); strcat(p,q); printf(%d %dn,sizeof(p),strlen(p); 输出结果为:_。4、以下程序设从键盘输入ABC后按键。void f()char ch=getchar(); printf(%c,ch);if(ch!=n) f(); printf(%c,ch); void main() f(); 输出结果为:_。5、main( ) char *q4=NANJING,BEIJING,HANGZHOU,SHANGHAI; char *p=q; for (int i=0;i4;i+,p+) printf(%c , *(*p+3)+1);输出结果为:_。6、int n; void f (int n ) static int a=3; n+=2; a+; printf(%d %d ,n,a);main() f(n);f(n=5); printf(%d ,n); 输出结果为:_。7、main() int x,y,z;x=y=z=0; +x|+y&+z;printf(%d %d %dn,x,y,z);输出结果为:_。8、void f(int *q) int i; for(i=0;i5;i+) -(*q);main() int a5=6,6,6,6,6,i; f(a+2);for(i=0;i5;i+) printf(%d,ai);输出结果为:_。9、main() char str37=1234,5678,*myp2; int i,j,s=0; for(i=0;i2;i+) mypi=stri; for(i=0;inum=77; q-num=88; r-num=99; p-next=q;q-next=r;r-next=NULL; printf(%dn,p-next-next-num);输出结果为:_。三、程序填空题(共7小题,每空2分,共20分)1、下面程序的功能是判断short型能表示的最大值。请填空。main() short n=0,m;while(1)m=n;n+;if(n0)_;printf(%dn,m);2、建立一个链表,将存储在字符数组中的字符依次转储到链表的各个结点中。 #include typedef struct node char data; struct node *next;NODE;NODE* CreatList(char s) NODE *head,*p,*last=NULL; while(*s!=0) p=_; p-data=*s+; p-next=NULL; if(last!=NULL) last-next=p; else head=p; last=p; return _;main() char s=Hello 2012!; NODE *head; head=CreatList(s); 3、以下程序的功能是:输入两个整数,求出它们的最大公约数并输出,请填空。 int gcd(int a,int b)int k;k= _;while(k!=0) a=b;b=k; k=a%b;_;main( ) int a,b;scanf(%d%d,&a,&b);printf(%d,gcd(a,b); 4、将一个字符串中的小写字母变为大写字母,其他字符不变。main() char s= Hello,2012!,*q; q=s; while (*q) if(*q=a & *q=z) _; q+; printf(%sn,s);5、将有N个元素的数组a中的数据逐个前移,第一个元素移到最后面。如有数组: 1 2 3 4 5 6 7 8移动后的结果为: 2 3 4 5 6 7 8 1。#define N 8main() int aN=1,2,3,4,5,6,7,8,i,t; t=_; for (i=0;iN-1;i+) _; aN-1=t; for(i=0;iN;i+) printf(%d ,ai); 6. 下面程序打出如下图案: * * * *main( ) int i,j; for(i=1;i=4;i+) for(j=1;j40-i;j+) printf( );for(j=1;j=2*i-1;j+) _; printf(n); 7. 以下程序中函数fun的功能是:统计结构体数组中所有成绩不及格的女同学(sex为F)的个数,存入变量n中,并做为函数值返回。 #define N 5 typedef struct stduent int no;char nam9; char sex;float score;STU; int fun(STU s) int i,n=0; for(i=0;iN;i+) if(_) n+; return n; main() STU aN=1,Kate,F,88,2,Bob,M,66,3,Tom,M,77,4,Betty,F,51,5,Sarah,F,57; int n; n=fun(a); printf(n=%dn,n); 四、编程题(共3小题,每小题10分,共30分)1、统计一个字符串中大写字母、小写字母、数字字符和其他字符的个数。2、从键盘输入10个整数建立一个数组,请将该数组的最大值和位置打印出来,寻找最大值和位置的工作必须在子函数内完成,由主函数调用。3、编程求一个字符串的长度,不得使用string.h中的库函数。函数原型如下,请完成该函数,并写出主函数予以测试。 int mystrlen(char *s);/*当s为“Hello”时,长度为5*/
展开阅读全文