收藏 分销(赏)

东北大学(秦皇岛)c语言考试题7.doc

上传人:精*** 文档编号:4521764 上传时间:2024-09-26 格式:DOC 页数:40 大小:89KB 下载积分:14 金币
下载 相关 举报
东北大学(秦皇岛)c语言考试题7.doc_第1页
第1页 / 共40页
东北大学(秦皇岛)c语言考试题7.doc_第2页
第2页 / 共40页


点击查看更多>>
资源描述
东北大学(秦皇岛)c语言考试题7 一、选择题答案 1. 若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是 A) swich(a+b); B) switch(a*a+b*b) { case 1:y=a+b; break; {case 3: case 0:y=a-b; break; case 1:y=a+b;break; } case 3:y=b-a,break; } C) switch a D) switch(a-b) { case c1 :y=a-b; break {default:y=a*b;break case c2: x=a*d; break case 3:case 4:x=a+b;break default:x=a+b; case 10:case 11:y=a-b;break; } } 你所选择的答案是:*,正确答案是:D × 2. 以下程序执行后sum的值是 main() { int i , sum; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); } A)15 B)14 C) 不确定 D)0 你所选择的答案是:*,正确答案是:C × 3. 若变量c为char类型,能正确判断出c为小写字母的表达式是 A) 'a'<=c<= 'z' B) (c>= 'a')||(c<= 'z') C) ('a'<=c)and ('z'>=c) D) (c>= 'a')&&(c<= 'z') 你所选择的答案是:*,正确答案是:D × 4. 以下所列的各函数首部中,正确的是 A) void play(var :Integer,var b:Integer) B) void play(int a,b) C) void play(int a,int b) D) Sub play(a as integer,b as integer) 你所选择的答案是:*,正确答案是:C × 5. 下列程序的运行结果是 void fun(int *a, int *b) { int *k; k=a; a=b; b=k; } main() { int a=3, b=6, *x=&a, *y=&b; fun(x,y); printf("%d %d", a, b); } A) 6 3 B) 3 6 C) 编译出错 D) 0 0 你所选择的答案是:*,正确答案是:B × 6. 以下只有在使用时才为该类型变量分配内存的存储类说明是 A) auto和 static B) auto和 register C) register和 static D) extern和 register 你所选择的答案是:*,正确答案是:B × 7. 以下程序的输出结果是 main() { int a[3][3]={ {1,2},{3,4},{5,6} },i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf("%dn",s); } A) 18 B) 19 C) 20 D)21 你所选择的答案是:*,正确答案是:A × 8. 以下合法的赋值语句是 A) x=y=100 B) d--; C) x+y; D) c=int(a+b); 你所选择的答案是:*,正确答案是:B × 9. 设正x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 printf("%d,%d\n",x--,--y); A) 10,3 B) 9,3 C) 9,2 D) 10,2 你所选择的答案是:*,正确答案是:D × 10. 假定w、x、y、z、m均为int型变量,有如下程序段: w=1; x=2; y=3; z=4; m=(w<x)?w; x; m=(m<y)?m;y; m=(m<z)?m; z; 则该程序运行后,m的值是it A) 4 B) 3 C) 2 D) 2 你所选择的答案是:*,正确答案是:D × 11. 设有以下函数: f ( int a) { int b=0; static int c = 3; b++; c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是 main() { int a = 2, i; for(i=0;i<3;i++) printf("%d\n",f(a)); } A) 7 8 9 B) 7 9 11 C) 7 10 13 D) 7 7 7 你所选择的答案是:*,正确答案是:A × 12. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 A) 3 B) 6 C) 10 D) 20 你所选择的答案是:*,正确答案是:D × 13. 以下程序的输出结果是 main() { char st[20]= "hello\0\t\\\"; printf(%d %d \n",strlen(st),sizeof(st)); } A) 9 9 B) 5 20 C) 13 20 D) 20 20 你所选择的答案是:*,正确答案是:B × 14. 以下程序段的输出结果是 int a=1234; printf("%2d\n",a); A) 12 B) 34 C) 1234 D) 提示出错、无结果 你所选择的答案是:*,正确答案是:C × 15. 以下程序的输出结果是 main() { char x=040; printf("%d\n",x<<1); } A) 100 B) 80 C) 64 D) 32 你所选择的答案是:*,正确答案是:C × 16. 以下程序的输出结果是 main() { int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]]; printf("%d\n",t); } A) 3 B) 4 C) 1 D) 9 你所选择的答案是:*,正确答案是:B × 17. 若以下定义: struct link { int data; struck link *next; }a,b,c,*p,*q; 且变量a和b之间已有如下图所示的链表结构: a b data next data next ┌──┬──┐ ┌──┬──┐ │ 5 │ ┼──→ │ 9 │ \0 │ └──┴──┘ └──┴──┘ ↑p c data next ┌──┬──┐ │ 7 │ │ └──┴──┘ ↑q 指针p指向变量a,q指向变量c。则能够把c插入到a和b 之间并形成新的链表的语句组是: A) a.next=c; c.next=b; B) p.next=q; q.next=p.next; C) p->next=&c; q->next=p->next; D) (*p).next=q; (*q).next=&b; 你所选择的答案是:*,正确答案是:C × 18. 已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是 A) 字符A B)字符a C)字符e D)非法的常量 你所选择的答案是:*,正确答案是:A × 19. 以下非法的赋值语句是 A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0; 你所选择的答案是:*,正确答案是:C × 20. 设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是 A)printf("x=%d\n",x); B) printf("x=%Ld\n",x); C)printf("x=%8dL\n",x); D)printf("x=%LD\n",x); 你所选择的答案是:*,正确答案是:B × 21. 有以下程序段 int n=0,p; do{scanf("%d",&p);n++;}while(p!=12345 &&n<3); 此处do-while循环的结束条件是 A) P的值不等于12345并且n的值小于3 B) P的值等于12345并且n的值大于等于3 C) P的值不等于12345或者n的值小于3 D) P的值等于12345或者n的值大于等于3 你所选择的答案是:*,正确答案是:D × 22. 以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序 void sort(int a[],int n) { int i,j,t; for(i=0;i<N-1;I++ for(j=i+1,j<N;J++) if(a[i]} main() { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5); for(i=o;i<10;i++) print("%d,",aa[i]); printf('\n"); }  程序运行后的输出结果是 A)1,2,3,4,5,6,7,8,9,10 B) 10,9,8,7,6,5,4,3,2,1, C) 1,2,3,8,7.6.5.4.9,10 D) 1,2,10,9,8,7,6,5,4,3 你所选择的答案是:*,正确答案是:C × 23. 以下叙述中错误的是 A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B) 在程序结束时,应当用fclose函数关闭已打开的文件 C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据 D) 不可以用FILE定义指向二进制文件的文件指针 你所选择的答案是:*,正确答案是:D × 24. 在一个C程序中( )。  A) main函数必须出现在所有函数之前  B) main函数可以在任何地方出现  C) main函数必须出现在所有函数之后  D) main函数必须出现在固定位置 你所选择的答案是:*,正确答案是:B × 25. 下列关于C语言用户标识符的叙述中正确的是  A)用户标识符中可以出现在下划线和中划线(减号)  B)用户标识符中不可以出现中划线,但可以出现下划线  C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头  D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头 你所选择的答案是:*,正确答案是:B × 26. 有以下程序   main()   { int x[8]={8,7,6,5,0,0},*s;    s=x+3    printf("%d\n",s[2]);   } 执行后输出结果是( )。  A) 随机值  B) 0  C) 5  D) 6 你所选择的答案是:*,正确答案是:B × 27. 有以下程序   main()   { int s=0,a=1,n;   scanf("%d",&n);   do   { s+=1; a=a-2; }   while(a!=n);   printf("%d\n",s);   } 若要使程序的输出值为2,则应该从键盘给n输入的值是( )。  A)-1  B)-3  C)-5  D)0 你所选择的答案是:*,正确答案是:B × 28. 以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址 #include #include char *scmp(char *s1, char *s2) { if(strcmp(s1,s2)<0) return(s1); else return(s2); } main() { int i; char string[20], str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2])); printf("%s\n",string); } 若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为( )。  A)abcd  B)abba  C)abc  D)abca 你所选择的答案是:*,正确答案是:B × 29. 有以下程序 main() { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i+1; printf("%d \n",a[1][2]); } 程序运行后的输出结果是( )。  A)3  B)6  C)9  D)2 你所选择的答案是:*,正确答案是:B × 30. 以下叙述中正确的是( )。 A) C语言的源程序不必通过编译就可以直接运行 B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令 C) C源程序经编译形成的二进制代码可以直接运行 D) C语言中的函数不可以单独进行编译 你所选择的答案是:*,正确答案是:D × 31. 以下符合C语言语法的实型常量是( )。 A) 1.2E0.5   B) 3.14.159E    C) .5E-3    D) E15 你所选择的答案是:*,正确答案是:C × 32. 有以下程序 main( ) { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf("%d,%d,%d\n",x,y,z); } 程序执行后的输出结果是( )。 A) 3,2,0   B) 3,2,-1   C) 4,3,-1   D) 5,-2,-5 你所选择的答案是:*,正确答案是:B × 33. 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。 A) p=1;   B) *q=2;   C) q=p;   D) *p=5; 你所选择的答案是:*,正确答案是:D × 34. 有以下程序 main( ) { char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"}; printf("%d\n",strlen(p[4])); } 执行后输出结果是( )。 A) 2   B) 3   C) 4   D) 5 你所选择的答案是:*,正确答案是:A × 35. 下面程序的功能是输出以下形式的金字塔图案是:  *  ***  *****  ******* main( ) { int i,j;  for(i=1;i<=4;i++)  { for(j=1;j<=4-i;j++) printf(“ “);  for(j=1;j<=_______;j++) printf(“*”);  printf(“\n”); }  } 在下划线处应填入的是( )。 A) i   B) 2*i-1   C) 2*i+1   D) i+2 你所选择的答案是:*,正确答案是:B × 36. 有以下程序 void f(int a[],int i,int j) { int t; if(i<j) { t=a[i]; a[i]=a[j];a[j]=t; f(a,i+1,j-1); } } main( ) { int i,aa[5]={1,2,3,4,5}; f(aa,0,4); for(i=0;i<5;i++) printf("%d,",aa[i]); printf("\n"); } 执行后输出结果是( )。 A) 5,4,3,2,1,   B) 5,2,3,4,1,   C) 1,2,3,5,4,   D) 1,2,3,4,5, 你所选择的答案是:*,正确答案是:A × 37. 有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。 A)a=a+b=b++ B)w%(int)a+b) C)(c+w)%(int)a D)w=a==b; 你所选择的答案是:*,正确答案是:C × 38. 有以下程序    main()    { int i;    for(i=0;i<3;i++)    switch(i)    {    case 0:printf("%d",i);    case 2:printf("%d",i);    default:printf("%d",i);    }    } 程序运行后的输出结果是 ( )。 A)022111 B)021021 C)000122 D)012 你所选择的答案是:*,正确答案是:C × 39. 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 ( )。 A)abs(x-y)<10 B)x-y>-10&& x-y<10 C)!(x-y)<-10||!(y-x)>10 D)(x-y)*(x-y)<100 你所选择的答案是:*,正确答案是:C × 40. 有以下程序    main()    { char a,b,c,d;    scanf("%c,%c,%d,%d",&a,&b,&c,&d);    printf("c,%c,%c,%c\n",a,b,c,d);    } 若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是( )。 A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6 你所选择的答案是:*,正确答案是:A × 41. s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是( )。 A)if(s1>s2)S; B)if(strcmp(s1,s2))S; C)if(strcmp(s2,s1)>0)S; D)if(strcmp(s1,s2)>0)S; 你所选择的答案是:*,正确答案是:D × 42. 有以下定义和语句 int a[3][2]={1,2,3,4,5,6,},*p[3]; p[0]=a[1]; 则*p[0]+1)所代表的数组元素是( )。 A)a[0][1] B)a[1][0] C)a[1][1] D)a[1][2] 你所选择的答案是:*,正确答案是:C × 43. 有如下程序    #include    main()    {FILE *fp1;    fp1=fopen("f1.txt","w");    fprintf(fp1,"abc");    fclose(fp1);    } 若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为( )。 A)goodabc B)abcd C)abc D)abcgood 你所选择的答案是:*,正确答案是:C × 44. 有以下程序 #include "stdio.h" #include "string.h" main() { char a[7]="abcd";int i,j; i=sizeof(a); j=strlen(a); printf("%d %d ",i,j); } 程序运行后的输出结果是 ( )。  A)2 2  B)7 4  C)7 2  D)6 2 你所选择的答案是:*,正确答案是:B × 45. 以下能正确定义一维数组的选项是 ( )。  A)int a[5]={0,1,2,3,4,5};  B)char a[]={0,1,2,3,4,5};  C)char a={'A','B','C'};  D)int a[5]="0123"; 你所选择的答案是:*,正确答案是:B × 46. 有以下程序 #define N 20 fun(int a[],int n,int m) { int i,j; for(i=m;i>=n;i--) a[i+1]=a[i]; } main() { int i,a[N]={1,2,3,4,5,6,7,8,9,10}; fun(a,2,9); for(i=0;i<5;i++) printf("%d",a[i]); } 程序运行后的输出结果是 ( )。  A)10234  B)12344  C)12334  D)12234 你所选择的答案是:*,正确答案是:C × 47. 以下语句或语句组中,能正确进行字符串赋值的是( )。  A)char *sp; *sp="right!";  B)char s[10]; s="right!";  C)char s[10]; *s="right!";  D)char *sp="right!"; 你所选择的答案是:*,正确答案是:D × 48. 设有如下说明 typedef struct ST { long a; int b; char c[2]; } NEW; 则下面叙述中正确的是 ( )。  A)以上的说明形式非法  B)ST是一个结构体类型  C)NEW是一个结构体类型  D)NEW是一个结构体变量 你所选择的答案是:*,正确答案是:C × 49. 有以下程序 main() { char s[]="159",*p; p=s; printf("%c",*p++); printf("%c",*p++); } 程序运行后的输出结果是 ( )。  A)15  B)16  C)12  D)59 你所选择的答案是:*,正确答案是:A × 50. 有以下程序 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=1;j<=i;j++) printf("%c",' '); for(j= j<4;j++) printf("%4d",num[i][j]); printf(" "); } } 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是 ( )。  A) i-1  B) i  C) i+1  D) 4-i 你所选择的答案是:*,正确答案是:B × 51. 当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是( )。    A)k%2    B)k%2==1    C)(k%2)!=0    D)!k%2==1 你所选择的答案是:*,正确答案是:D × 52. 设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是( )。    A)k=k>=k   B)-k++    C)k%int(f)    D)k>=f>=m 你所选择的答案是:*,正确答案是:C × 53. 有以下程序 main() { char p[]={'a', 'b', 'c'}, q[]="abc"; printf("%d %d\n", sizeof(p),sizeof(q)); } 程序运行后的输出结果是( )。    A)4 4    B)3 3    C)3 4   D)4 3 你所选择的答案是:*,正确答案是:C × 54. 有以下程序 main() { int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf("%d,%d,%d,%d\n",a,b,c,d); } 程序输出  A)0,1,2,0  B) 0,0,0,3  C)1,1,2,0  D)编译有错 你所选择的答案是:*,正确答案是:D × 55. 以下叙述中错误的是  A)C程序必须由一个或一个以上的函数组成  B)函数调用可以作为一个独立的语句存在  C)若函数有返回值,必须通过return语句返回  D)函数形参的值也可以传回对应的实参 你所选择的答案是:*,正确答案是:D × 56. 以下叙述中正确的是  A)预处理命令行必须位于C源程序的起始位置  B)在C语言中,预处理命令行都以“#”开头  C)每个C程序必须在开头包括预处理命令行:#include  D)C语言的预处理不能实现宏定义和条件编译的功能 你所选择的答案是:*,正确答案是:B × 57. 下列定义变量的语句中错误的是________。  A)int _int; B)double int_;  C)char For; D)float USS 你所选择的答案是:*,正确答案是:D × 58. 有以下程序 fun(int x,int y){return(x+y);} main() { int a=1,b=2,c=3,sum; sum=fun((a++,++b,a+b),c++); printf("%d\n",sum); } 执行后的输出结果是________。  A)6 B)7  C)8 D)9 你所选择的答案是:*,正确答案是:C × 59. 有以下程序 main() { int x[3][2]={0},i; for(i=0;i<3;i++) scanf("%d",x[i]); printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]); }   若运行时输入:2 4 6<回车>,则输出结果为________。   A)2 0 0 B)2 0 4  C)2 4 0 D)2 4 6 你所选择的答案是:*,正确答案是:B × 60. 有以下程序 main() {char s[ ]={ "aeiou"},*ps; ps=s; printf("%c\n",*ps+4); } 程序运行后的输出结果是________。   A)a B)e  C)u D)元素s[4]的地址 你所选择的答案是:*,正确答案是:B × 二、填空题 1. 以下程序的功能是:从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串,请填空. #include"ctype.h" #include"stdio.h" main() { char str[81],*sptr; int i; for(i=0;i<80;i++) { str[i]=getchar(); if(str[i]=='\n') break; } str[i]=______; sptr=str; while(*sptr) putchar(*sptr++); } 你所选择的答案是:,正确常答案是:'\0' 或 0, × 2. 在计算机中,字符的比较是对它们的( )进行比较。 你所选择的答案是:,正确常答案是:ASCII码 或 ASCII, × 3. 下列程序的输出结果是16.00,请填空。 main() {int a=9, b=2; float x=_____, y=1.1,z; z=a/2+b*x/y+1/2; printf("%5.2f\n", z ); } 你所选择的答案是:,正确答案是:6.6 , × 4. 设有定义“struct {int a; float b; char c;} abc, *p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和( )。 你所选择的答案是:,正确常答案是:p_abc->a 或 (*p_abc).c, × 5. 以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。 #include <stdio.h> main () { FILE *fp; char a[4]="1234",b[6]="abcedf"; if((fp=fopen("_______","wb"))==NULL)exit(0); fwrite(a,sizeof(char),4,fp); fwrite(b,6*sizeof(char),1,fp); fclose(fp); } 你所选择的答案是:,正确答案是:lett.dat , × 6. 以下程序输出的结果是( )。 main() { int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d); } 你所选择的答案是:,正确答案是:0 , × 7. 设x,y,z和t均为int型变量,执行以下语句:x=y=z=1; t=++x||++y&&++z; 后t的值为____________。 你所选择的答案是:,正确常答案是:1 或 1.0, × 8. 用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。 st=(char*) 【 】 ; 你所选择的答案是:,正确常答案是:malloc(11) 或 malloc(sizeof(char)*11), × 9. 以下程序的输出结果是【 】 。 main() { int a=177; printf("%o\n",a); } 你所选择的答案是:,正确答案是:261 , × 10. 以下程序运行后的输出结果是 _______ 。    main()    { int a,b,c;    a=25;    b=025;    c=0x25;    printf("%d %d %d\n',a,b,c);    } 你所选择的答案是:,正确答案是:25 21 37 , ×
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服