|
一、选择题
1、与十进制数200等值的十六进制数为(C)
A)A8 B)A4 C)C8 D)C4
----------------------- 2、DOS文件系统的组织结构属于(D)
A)星形结构 B)网形结构 C)环形结构 D)树形结构
-----------------------
3、对存储器按字节进行编址,若某存储器芯片共有10根地址线,则该存储器芯片的存储容量为(A)
A)1KB B)2KB C)4KB D)8KB
-----------------------
4、在DOS环境下,代表键盘和显示器的设备文件名为(B)
A)PRN B)CON C)NUL D)LPT
-----------------------
5、计算机网络的主要特点是(C)
A)运算速度快 B)运算精度高 C)资源共享 D)人机交互
-----------------------
6、磁盘处于写保护状态时其中的数据(B)
A)不能读出,不能删改 B)可以读出,不能删改 C)不能读出,可以删改 D)可以读出,可以删改
-----------------------
7、从Windows环境进入MS—DOS方式后,返回Windows环境的DOS命令为(A)
A)EXIT B)QUIT C)RET D)MSDOS
-----------------------
8、在Windows环境下,若资源管理器左窗口中的某文件夹左边标有“+”标记,则表示(B)
A)该文件夹为空 B)该文件夹中含有子文件夹 C)该文件夹中只包含有可执行文件 D)该文件夹中包含系统文件
-----------------------
9、在Windows菜单中,暗淡的命令名项目表示该命令(A)
A)暂时不能使用 B)正在执行 C)包含下一层菜单 D )包含对话框
-----------------------
10、在Windows环境下,单击当前窗口中的按钮“ ”,其功能是(C)
A)将当前应用程序转为后台运行 B)退出Windows后再关机 C)终止当前应用程序的运行 D)退出Windows后重新启动计算机
-----------------------
11.用C语言编写的代码程序(B)
A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行
-----------------------
12.结构化程序由三种基本结构组成,三种基本结构组成的算法(C)
A)可以完成任何复杂的任务 B)只能完成部分复杂的任务 C)只能完成符合结构化的任务 D)只能完成一些简单的任务
-----------------------
13. 以下定义语句中正确的是(C) A)char a='A'b='B'; B)float a=b=10.0; C)int a=10,*b=&a; D)float *a,b=&a;
-----------------------
14.下列选项中,不能用作标识符的是(D) A)_1234_ B)_1_2 C)int_2_ D)2_int_
-----------------------
15.有以下定义语句 double a,b; int w; longc;若各变量已正确赋值,则下列选项中正确的表达式是(C)
A)a=a+b=b++ B)w%(int)a+b) C)(c+w)%(int)a D)w=a==b;
-----------------------
16.有以下程序
main() { int m=3,n=4,x; x=-m++; x=x+8/++n; printf("%d\n",x); }
程序运行后的输出结果是(D)
A)3 B) 5 C)-1 D)-2
-----------------------
17.有以下程序
main() { char a='a',b; print("%c,",++a); printf("%c\n",b=a++); }
程序运行后的输出结果是(A)
A)b,b B)b,c C)a,b D)a,c
-----------------------
18.有以下程序
main() { int m=0256,n=256; printf("%o %o\n",mn,n); }
程序运行后的输出结果是(C)
A)0256 0400 B)0256 256 C)256 400 D)400 400
-----------------------
19.有以下程序
main() { int a=666,b=888; printf("%d\n",a,b); }
程序运行后的输出结果是(B)
A)错误信息 B)666 C)888 D)666,888
-----------------------
20.有以下程序
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); } }
程序运行后的输出结果是 (C)
A)022111 B)021021 C)000122 D)012
-----------------------
21.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 (C)
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
-----------------------
22.有以下程序
main() { int a=3,b=4,c=5,d=2; if(a>b) if(b>c) printf("%d",d++ +1); else printf("%d",++d +1); printf("%d\n",d); }
程序运行后的输出结果是 (A)
A)2 B)3 C)43 D)44 -----------------------
23.下列条件语句中,功能与其他语句不同的是 (D)
A) if(a) printf("%d\n",x); else printf("%d\n",y); B) if(a==0) printf("%d\n",y); else printf("%d\n",x); C) if (a!=0) printf("%d\n",x); else printf("%d\n",y); D) if(a==0) printf("%d\n",x); else printf("%d\n",y);
-----------------------
24.有以下程序
main() { int i=0,x=0; for (;;) { if(i==3||i==5) continue; if (i==6) break; i++; s+=i; }; printf("%d\n",s); }
程序运行后的输出结果是(D)
A)10 B)13 C)21 D)程序进入死循环
-----------------------
25.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段(B)
A)for(i=1,p=1;i<=5;i++) p*=i; B)for(i=1;i<=5;i++){ p=1; p*=i;} C)i=1;p=1;while(i<=5){p*=i; i++;} D)i=1;p=1;do{p*=i; i++; }while(i<=5);
-----------------------
26.有以下程序
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)
A)6,5,A,B B)6,5,65,66 C)6,5,6,5 D)6,5,6,6
-----------------------
27)以下能正确定义二维数组的是(C)
A)int a[][3]; B)int a[][3]=2{2*3}; C)int a[][3]={}; D)int a[2][3]={{1},{2},{3,4}};
-----------------------
28. 有以下程序
int f(int a) { return a%2; } main() { int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s);i++) d+=s; printf("%d\n",d); }
程序运行后的输出结果是 A
A)9 B)11 C)19 D)21 -----------------------
29.若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是(D)
A)p+1 B)*(p+3) C)*(p+1)+3 D)*(p[0]+2])
-----------------------
30.有以下程序
main() { int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=p; p=q;q=r; printf("%d,%d,%d,%d\n",*p,*q,a,b); }
程序运行后的输出结果是(C)
A)8,7,8,7 B)7,8,7,8 C)8,7,7,8 D)7,8,8,7 -----------------------
31.s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是 (D)
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;
-----------------------
32.设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是(D)
A)for(i=0;i<6;i++) printf("%2d",*(p++)); B)for(i=0;i<6;i++) printf("%2d",*(p+i)); C)for(i=0;i<6;i++) printf("%2d",*p++); D)for(i=0;i<6;i++) printf("%2d",(*p)++);
-----------------------
33.有以下程序
#include <stdio.h> main() {int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf("%d %d\n",*p,*q); }
程序运行后的输出结果是(A)
A)运行后报错 B)6 6 C)6 11 D)5 10
-----------------------
34有以下定义和语句
int a[3][2]={1,2,3,4,5,6,},*p[3]; p[0]=a[1]; 则*p[0]+1)所代表的数组元素是(C)
A)a[0][1] B)a[1][0] C)a[1][1] D)a[1][2]
-----------------------
35.有以下程序
main() {char str[][10]={"China","Beijing"},*p=str; printf("%s\n",p+10); }
程序运行后的输出结果是(B)
A) China B)Bejing C)ng D)ing
-----------------------
35.有以下程序
main() {char s[]="ABCD",*p; for(p=s+1;p<s+4;p++)printf("%s\n",p); }
程序运行后的输出结果是(D)
A) ABCD B)A C)B D)BCD BCD B C CD CD C D D D D
-----------------------
36.有以下程序
main() {char s[]="ABCD",*p; for(p=s+1;p<s+4;p++) printf("%s\n",p);}
运行后的输出结果是(D)
A)ABCD B)A C)B D)BCD BCD B C CD CD C D D D D
-----------------------
37.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则(B)
A)称为函数的直接递归调用 B)称为函数的间接递归调用 C)称为函数的循环调用 D)C语言中不允许这样的递归调用
-----------------------
38.已有定义:int i,a[10],*p;,则合法的赋值语句是(D)
A)p=100; B)p=a[5]; C)p=a[2]+2; D)p=a+2;
-----------------------
39.以下叙述中正确的是 (A)
A)局部变量说明为static存储数,其生存期将得到延长 B)全局变量说明为static存储类,其作用域将被扩大 C)任何存储类的变量在未赋初值时,其值都是不确定的 D)形参可以使用的存储类说明符与局部变量完全相同
-----------------------
40.设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是(A)
A)c1^c2 B)c1&c2 C)~c2 D)c1|c2
-----------------------
41.程序中对fun函数有如下说明 void *fun(); 此说明的含义是: (C)
A)fun了数无返回值 B)fun函数的返回值可以是任意的数据类型 C)fun函数的返回值是无值型的指针类型 D)指针fun指向一个函数,该函数无返回值
-----------------------
42.有以下程序
main() { char s[]"Yes\n/No",*ps=s; puts(ps+4); *(ps+4)=0; puts(s); } 程序运行后的输出结果是(选项D中的第一行是空行) (B)
A)n/No B)/No C)n/NO D) Yes Yes Yes /No /No /No
-----------------------
43.有以下程序
main() { unsigned int a; int b=-1; a=b; printf("%u",a); }
程序运行后的输出结果是(B)
A)-1 B)65535 C)32767 D)-32768
-----------------------
44.有以下程序
void fun(int *a,int i,int j) { int t; if(i<j) { t=a;a=a[j];a[j]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,6,1,8},i; fun(x,0,3); for(i=0;i<4;i++) printf("%2d",x); printf("\n"); }
程序运行后的输出结果是 (C)
A)1 2 6 8 B) 8 6 2 1 C) 8 1 6 2 D)8 6 1 2
-----------------------
45.有以下说明和定义语句
struct student { int age; char num[8];}; struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}}; struct student *p=stu;
以下选项中引用结构体变量成员的表达式错误的是 (D)
A) (p++)->num B)p->num C)(*p).num D)stu[3].age
-----------------------
46.有以下程序
main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for (j=2;j>=i;j--) if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for (i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;} for (i=0;i<8;i++) printf("%d",x); printf("\n"); }
程序运行后的输出结果是:(A)
A)75310246 B)01234567 C)76310462 D)13570246
-----------------------
47.有如下程序
#include <stdio.h> main() {FILE *fp1; fp1=fopen("f1.txt","w"); fprintf(fp1,"abc"); fclose(fp1); }
若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为(C)
A)goodabc B)abcd C)abc D)abcgood
-----------------------
48~50.以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的 字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出 正确的选项。 48(C) 49(A ) 50(B)
#include <stdlib.h> stuct node { char data; struct node *next;}; (48) CreatList(char *s) { struct node *h,*p,*q); h=(struct node *) malloc(sizeof(struct node)); p=q=h; while(*s!='\0') { p=(struct node *) malloc(sizeof(struct node)); p->data= (49) ; q->next=p; q= (50) ; s++; } p->next='\0'; return h; } main() { char str[]="link list"; struct node *head; head=CreatList(str); ... }
(48)A)char * B)struct node C) struct node* D) char
(49)A)*s B)s C)*s++ D)(*s)++
(50)A)p->next B)p C)s D)s->next
-----------------------
二、填空题 1.在64位高档微机中,CPU能同时处理 [8] 个字节的二进制数据。
-----------------------
2.E-mail地址由域名和用户名两部分组成,它们之间用@分隔,其中在@后面的部分 是 [域名]。
-----------------------
3.Windows窗口一般由标题栏、菜单栏、控制按钮等部分组成。为了移动窗口,则要用鼠标拖动 [标题栏]。
-----------------------
4.计算机软件分为系统软件和应用软件,UNIX系统属于 [系统软件]。
-----------------------
5.在Windows环境下,为了将屏幕内容存入剪贴板,应按 [print screen sysrq] 键。
-----------------------
6.以下程序段的输出结果是 [11]。
int i=9; printf("%o\n",i);
-----------------------
7.以下程序运行后的输出结果是 [25 21 37]。
main() { int a,b,c; a=25; b=025; c=0x25; printf("%d %d %d\n",a,b,c); }
-----------------------
8.以下程序运行后的输出结果是 [24]。
main() { int p[7]={11,13,14,15,16,17,18}; int i=0,j=0; while(i<7 && p%2==1) j+=p[i++]; printf("%d\n",j); }
-----------------------
9.以下程序运行后的输出结果是 [2 1]。
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; } printf("%d %d\n",a,b); }
10.以下程序运行后的输出结果是 [92]。
main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}}; int i=0,j=0,s=0; while(i++<4) { if(i==2||i==4) continue; j=0; do{ s+= a[j]; j++; } while(j<4); } printf("%d\n",s); }
-----------------------
11.以下程序运行后的输出结果是 [gae]。
main () { char a[]="Language",b[]="Programe"; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k++) if(*p1+k)==*(p2+k)) printf("%c",*(p1+k))_; }
-----------------------
12.以下程序运行后的输出结果是 [1*3*5*7*9]。这到题还有一种是if(i%2==1) 结果是*2*4*6*8*
main() { char a[]="123456789",*p; int i=0; p=a; while(*p) { if(i%2==0) *p='*'; p++;i++; } puts(a); }
-----------------------
13.以下程序中, for循环体执行的次数是 [4]。
#define N 2 #define M N+1 #define K M+1*M/2 main() { int i; for(i=1;i<K;i++) { ... ] ... }
-----------------------
14、暂缺(希望热心网友提供和大家分享)
-----------------------
15. 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。 请填空。16 &a 17 a
main() { int i,a[20],sum,count; sum=count=0; for(i=0;i<20;i++) scanf("%d", [16] ); fro(i=0;i<20;i++) { if(a>0) { count++; sum+= [17] ; } } printf("sum=%d,count=%d\n",sum,count); }
-----------------------
16.以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
答案:a[k] *sum x,&s #define M 2 #define N 4 void SumColumMin(int a[M][N],int *sum) { int i,j,k,s=0; for(i=0;i<N;i++) { k=0; for(j=1;j<M;j++) if(a[k]>a[j])k=j; s+= a[k] ; } *sum =s; } main() { int x[M][N]={3,2,5,1,4,1,8,3},s; SumColumMin( x,&s); printf("%d\n",s); }
|