9.在E一R图中,用来表示实体联系的图形是( 形 B) 菱形 p) 三角形 10.有三个关系R、S和T如下: 则关系T是由关系R和S通过某种操作得到,该操作为(D), ABC ABC ABC 12 d32 12 e3 d32 投影 交 C语言程序仅司以行 以下叙述中正确的是(A), B)C语言程序仅可以解释执行 c C语言程序既可以编译执行又可以解释执行 D)以上说法都不对 12.以下叙述中错误的是(A )用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到见名识意 C)用户所定义的标识符中,大、小写字母代表不同标识D)用户所定义的标识符必须以字母城下划线开头 13.若有说明语句:chare=72 则变量cA) 字符D)说明不合法,c的值不确定 羽哭为B】。 R) cha 5.以下定义语句中正确的是B int =h B)charA=65+1.b='b' b=&a,*c=&b: D)doublea=0.0:b=1.1 16.若在定义语句imta,b,c,p=&c:之后,接着执行以下选项中的语句,则能正确执行的语句是(D)。 scanf("%d",a,b,c): B)scanf"%d%d%d",a,b,c): &p): scanf"%d",p): 【m十=k;k十=m;printf("m=%dk=%d",m,k+十;} main() fun(++);printf("i=%dk=%d\n",i,k); A m=4k=5i=5k=5 B)m=4k=4=5k=5 m=4k=4i=4k=5 m=4k三5 i=4k= int a.b.st scanf("%d%d",&a,&b) =a ia<b) S=D d") 1 )48D)以上都不对 19.有以下程序: main( c() defauk break:
9.在E-R图中,用来表示实体联系的图形是( C )。 A) 椭圆形 B) 矩形 C) 菱形 D) 三角形 10.有三个关系R、S和T如下: 则关系T是由关系R和S通过某种操作得到,该操作为( D )。 A) 选择 B) 投影 C) 交 D) 并 11.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( A )。 A) C语言程序仅可以编译执行 B)C语言程序仅可以解释执行 C) C语言程序既可以编译执行又可以解释执行 D) 以上说法都不对 12.以下叙述中错误的是( A )。 A)用户所定义的标识符允许使用关键字 B) 用户所定义的标识符应尽量做到"见名识意" C)用户所定义的标识符中,大、小写字母代表不同标识 D)用户所定义的标识符必须以字母或下划线开头 13.若有说明语句:char c='\72' ;则变量c( A )。 A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法,c的值不确定 14.现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为( B )。 A) int B) double C) float D) char 15.以下定义语句中正确的是( B )。 A) int a=b=0; B) char A=65+1,b=′b′; C) float a=1,*b=&a,*c=&b ; D) double a=0.0;b=1.1 16.若在定义语句int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( D )。 A) scanf("%d",a,b,c); B) scanf("%d%d%d",a,b,c); C) scanf("%d", &p); D) scanf("%d", p); 17.以下程序的运行结果是( B )。 int k=0; void fun(int m) { m+=k;k+=m;printf("m=%d k=%d ",m,k++);} main() { int i=4; fun(i++); printf("i=%d k=%d\n",i,k); } A) m=4 k=5 i=5 k=5 B) m=4 k=4 i=5 k=5 C) m=4 k=4 i=4 k=5 D) m=4 k=5 i=4 k=5 18.在执行下述程序时,若从键盘输入6和8,则结果为( B )。 main() { int a,b,s; scanf("%d%d",&a,&b); s=a ; if(a<b) s=b; s*=s; printf("%d",s); } A) 36 B) 64 C) 48 D) 以上都不对 19.有以下程序: main() { int k=5,n=0; while(k>0) { switch(k) { default : break;
case l:n十=k case2: case3:n十=k: printf"%dn",): 程序运行后的输出结果是(D A)0 p) 20.有以下程序: #include<stdio.h> main(int x: scanf("%d",&x): 程序运行时,输入的值在哪个范围才会有输出结果(B)。 A)不等于10的整数B)大于3且不等10的整数C)大于3或等于10的整数D)小于3的整数 21.有以下程序: tdio h> norint-1h-0. imt%d,",b=a十b): 4=2*b)} 程序运行后的输出结 果是(D)。 A)0.0 B)1.0c)32D)12 22.有以下程序: iatm): 若要按以下形式输出数组右上半三角 12 678 1112 则在程序下划线处应填入的语句是(A)。 A)i- B)i+1C)1D)4-i 23.以下程序段中,与语句:k=a>b?(b>心?1:0):0:功能相同的是(A) A)i(a>b)&&(b>ck=1: else ka i(b)>ek= C)if(as=b)k=0 else if(b<=c)k=1; D)ia>b)k=1, else if(b>c)k=1; else k=0: 24.有以下程序: *s,chart) ==)*s=t-a十A s++;}
case 1 : n+=k; case 2 : case 3 : n+=k; } k--; } printf("%d\n",n); } 程序运行后的输出结果是( D )。 A) 0 B) 4 C) 6 D) 7 20.有以下程序: #include <stdio.h> main() { int x; scanf("%d",& x); if(x<=3); else if(x!=10) printf("%d\n",x); } 程序运行时,输入的值在哪个范围才会有输出结果( B )。 A) 不等于10的整数 B) 大于3且不等10的整数 C) 大于3或等于10的整数 D) 小于3的整数 21.有以下程序: #include <stdio.h> main(){ int a=1,b=0; printf("%d,",b=a+b); printf("%d\n",a=2*b)} 程序运行后的输出结 果是( D )。 A) 0,0 B) 1,0 C) 3,2 D) 1,2 22.有以下程序: main(){ int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=0;j<=i;j++)printf("%4c", ' '); for(j= ;j<4;j++)printf("%4d",num[i][j]); printf("\n"); } } 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的语句是( A )。 A) i-1 B) i+1 C) i D) 4-i 23.以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是( A )。 A) if((a>b)&&(b>c))k=1; else k=0; B) if((a>b)‖(b>c))k=1; else k=0; C) if(a<=b)k=0; else if(b<=c)k=1; D) if(a>b)k=1; else if(b>c) k=1; else k=0; 24.有以下程序: void ss(char *s,char t) { while(*s) { if(*s==t)*s=t- a + A ; s++; } }
mainO char strll1001="abcddfefdbd",c=d 程序运行后的出出特深合:】 s(strl, A)ABCDDEFEDBD B)abeDDfefDbD C)abeAAfefAbA D)Abeddfefdbd 25.现有女 main0 {intk30={12,324,45,6,768,98,21,34,453,456: int count=0,i=0: %2==0k%5==0 count-十+: printf("%d,%dn",count,): 则程序段的输出结果为(D)。 A)7,8B)8,8C)7,10D)810 26.以下程序运行后的输出结果是(D) r*s,char*t){char ki 三g 三 *t=k: s十十:t-: i逾*)s,: p-2): print"str) 公我 weoclme C)welcome D)emoclew =2008 则以下叙述中正确的是(B) B)输出值为2008 运行时产生出信息D》输出语向中格式说明符的个数少于输出项的个数,不能正确输出 28.有以下程序 tdio h> intd)(*e=*c+1:d=d+1 mainO{char b=aa=A fun(&b,a):printf("%c,%cn",b,a): 程序运行后的输出结果是{A)。 A)b,B.b,A B)b,B,B,A C)a,B,B,a D)a,B,a,B 29.有以下程序: de <stdio.h> n0f char al10=”abcd": rin()sivcla) 程序运行后的输出结果是(B:
main() { char str1[100]="abcddfefdbd",c= d ; ss(str1,c); printf("%s\n",str1);} 程序运行后的输出结果是( B )。 A) ABCDDEFEDBD B) abcDDfefDbD C) abcAAfefAbA D) Abcddfefdbd 25.现有如下程序段: #include "stdio.h" main() { int k[30]={12,324,45,6,768,98,21,34,453,456}; int count=0,i=0; while(k[i]) { if(k[i]%2==0||k[i]%5==0)count++; i++; } printf("%d,%d\n",count,i);} 则程序段的输出结果为( D )。 A) 7,8 B) 8,8 C) 7,10 D) 8,10 26.以下程序运行后的输出结果是( D )。 #include<string.h> void f(char *s,char *t){ char k; k=*s; *s=*t; *t=k; s++;t--; if(*s)f(s,t); } main(){ char str[10]="welcome",*p; p=str+strlen(str)/2+1; f(p,p-2); printf("%s\n",str); } A) eelcomw B) weoclme C) welcome D) emoclew 27.设有如下程序段: int x=2004,y=2008; printf("%d\n",(x,y)); 则以下叙述中正确的是( B ) A) 输出值为2004 B) 输出值为2008 C) 运行时产生出错信息 D) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出 28.有以下程序: #include <stdio.h> void fun(char*c,int d){ *c=*c+1;d=d+1; printf("%c,%c,",*c,d); } main(){ char b= a ,a= A ; fun(&b,a); printf("%c,%c\n",b,a); } 程序运行后的输出结果是( A )。 A) b,B,b,A B) b,B,B,A C) a,B,B,a D) a,B,a,B 29.有以下程序: #include <stdio.h> #include <string.h> main(){ char a[10]="abcd"; printf("%d,%d\n",strlen(a),sizeof(a)); } 程序运行后的输出结果是( B )。 A) 7,4 B) 4,10 C) 8,8 D) 10,10 30.若有定义int a[2][3];,则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为( A )
A)(a十i+)B)(a+ijlC)*(a十i+j)D)*a+)+j 31.有以下程序: #icdde<stdio.h> char cl c2.c3.c4.c5.c6 scanf("%e%c%c%e",&el,&c2,&c3,&c4)t c5=getchar(:c6=getcharO: putchar(cl):putchar(c2); printf("%%cn",5,c6) 程序运行后,若从键盘输入(从第1列开始 123<回车> 45678<回车> 则输出结果是(D) A01267 B)1256 C)1278D)1245 32.以下的运行结果是D♪ int f(int c)f static int a=2: c=e+1, return(a++)+c;} main({inti,k=0 for(i=0;K2;++)(inta=3;k+=f(a);} k十4 printf("%dn",k) A)17B)16C)15D】14 33.设有定义:imtn1=0,n2,*p=&2,“g=&n1:,以下赋值语句中与n2=n1:语句等价的是(A)。 A)*p=*qi B)p=q:C)*p=&nl;D)p=*q: 34.设有如下说明 long a int by char c2]: NEW; 以下说法正确的是(B)· 楚 类型 35.有 程序 include <stdio.h> #include <string.h> ct{char name]:char sex;float score2];)STU; STUb="Zhao",'m',85.0,90.0):inti; strcpv(a.name,b.name): asex=b.sex for(i=0;i<2;++)a.score[i]=b.score[ilt {sTUc={"Qan",'r',95.0,92.0: f(c): printf("%s,%,%2.0f,%2.0fn",c.name,c.sex,c.score[0],c.score[1D): A)Oian. m,85,90C))Zha0,E95,92D)Zha0,m,85,90 36.有以下程序:
A) *(*(a+i)+j) B) (a+i)[j] C) *(a+i+j) D) *(a+i)+j 31.有以下程序: #include <stdio.h> main() { char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1);putchar(c2); printf("%c%c\n",c5,c6); } 程序运行后,若从键盘输入(从第1列开始) 123<回车> 45678<回车> 则输出结果是( D ) A) 1267 B) 1256 C) 1278 D) 1245 32.以下程序的运行结果是( D )。 #include <stdio.h> int a=1; int f(int c){ static int a=2; c=c+1; return(a++)+c;} main(){ int i,k=0; for(i=0;i<2;i++){int a=3;k+=f(a);} k+=a; printf("%d\n",k); } A) 17 B) 16 C) 15 D) 14 33.设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( A )。 A) *p=*q; B) p=q; C) *p=&n1; D) p=*q; 34.设有如下说明: typedef struct ST { long a; int b; char c[2]; }NEW; 以下说法正确的是( B )。 A) NEW是一个结构体变量 B) NEW是一个结构体类型 C) ST是一个结构体类型 D) 以上说明形式非法 35.有以下程序: #include <stdio.h> #include <string.h> typedef struct{ char name[9]; char sex; float score[2]; }STU; void f(STU a) { STU b={"Zhao",'m',85.0,90.0}; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i<2;i++) a.score[i]=b.score[i]; } main() { STU c={"Qian",' f ',95.0,92.0}; f(c); printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]); } 程序的运行结果是( A )。 A) Qian,f,95,92 B) Qian,m,85,90 C) Zhao,f,95,92 D) Zhao,m,85,90 36.有以下程序:
#include <stdio.h> #define N4 void fun(intN],int b){int i; for(i=0:iN:++)b mainO(int xllIN]=((1,23),((5,6,7,8),(9,108,yIN],i; fun(x v) for(i=0:i<N:++)printf("%d,"ylil): printf("n"): 01.23.4 107 37.有以下程序: #include<stdio.h> int fun(intx,inty){i逾x!=y)return(c+y)/2)i else return(x): mainO(int a=4,b=5,= printf"%n",fun(fun(bc)) 程序运行后的输出结果是(B): 型变量 面的 片 (*%d"):('"%dn"),x 上面程序片段的输出结果是(B。 A)*3 B) c) D》.*3#料 39.有以下程序 #define M N+1 e fx)(x*M) intil,i2; i1=f2): 2=1+1): printf("%d%d\n",il,2); 程序的运行结果是(B): A)1212 B)117 c)1111D)127 40.有以下程序: #include<stdio.h> mainOf unsigned char a=8,c: printf"%dm",c 程序运行后的输出结果是(C)· A)32B)16C)1D)0
#include <stdio.h> #define N 4 void fun(int a[][N],int b[]){ int i; for(i=0;i<N;i++) b[i]=a[i][i]; } main(){ int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i; fun(x,y); for(i=0;i<N;i++)printf("%d,",y[i]); printf("\n"); } 程序的运行结果是( B )。 A) 1,2,3,4, B) 1,0,7,0, C) 1,4,5,9, D) 3,4,8,10, 37.有以下程序: #include<stdio.h> int fun(int x,int y){ if(x!=y)return((x+y)/2); else return(x); } main(){ int a=4,b=5,c=6; printf("%d\n",fun(2*a,fun(b,c))); } 程序运行后的输出结果是( B )。 A) 3 B) 6 C) 8 D) 12 38.若x是int型变量,且有下面的程序片段: for(x=3;x<6;x++) printf((x%2)?("**%d"):("##%d\n"),x); 上面程序片段的输出结果是( B )。 A) **3 ##4 **5 B) ##3 **4 ##5 C) ##3 **4##5 D) **3##4 **5 39.有以下程序: #include <stdio.h> #define N 5 #define M N+1 #define f(x)(x*M) main() { int i1,i2; i1=f(2); i2=f(1+1); printf("%d %d\n",i1,i2); } 程序的运行结果是( B )。 A) 12 12 B) 11 7 C) 11 11 D) 12 7 40.有以下程序: #include<stdio.h> main(){ unsigned char a=8,c; c=a>>3; printf("%d\n",c); } 程序运行后的输出结果是( C )。 A) 32 B) 16 C) 1 D) 0