第1套 C语言程序设计笔试样题
一单项选择题(每题1分,共40分)
1.某微型计算机的型号规格标有PentiuШ600字样,其中PentiuШ是指 __C____ A. 厂家名称 B. 机器名称 C.CPU型号 D. 显示器名称 2.目前微型机上普通使用的光驱及光盘,它采用的是__C____ A. 超导技术 B. 激光技术 C. 集成电路技术 D. 调频技术 3.在下列一组数中,最小数为__C_____
A.(11011101)2 B.(125)10 C.(A7)16 D.(157)8 4.Windows 98中,“回收站”是__B___
A.存中的部分空间 B.硬盘中的部分空间 C.软盘中的部分空间 D. 部分空间中的高速缓存
5.在“我的电脑”窗口中改变一个文件或文件夹的名称,可以采用的方法是:先选取该文件夹或文件,再用鼠标左键_____
A.单击该文件夹或文件的名称 B. 单击该文件夹或文件的图标 C.双击该文件夹或文件的名称 D. 双击该文件夹或文件的图标 6.Windows 98的文件夹组织结构是一种_B____
A.表格结构 B.树形结构 C.网状结构 D.线性结构 7.以太网(Ethernet)的拓扑结构是_B____
A.环形 B.星形 C.总线形 D.树形 8.在因特网(Internet)中,电子公告板简称为_B_____ A. B.BBS C. D.FTP
9.在多媒体个人计算机中,声卡的作用是_D_____ A.用来播放声音 B.连接主机和声音播放设备
C.用来录入声音 D.连接主机和声音播放与录入设备
. -可修遍-
- .
10.“CIH”是一种计算机病毒,它主要是破坏_D___,导致计算机系统瘫痪。 A.CPU B.软盘 C.BOOT(程序) D.BIOS
11.设x,y,z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为_C___ A.4 B.16 C.32 D.52 12.设有如下的变量定义 int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2;
则以下符合C语言的表达式是C_____
A.a+=a-=(b=4)*(a=3) B.x%(-3)C.a=a*3=2 D.y=float(i) 13.假定有以下变量定义: int k=7,x=12;
则能使值为3的表达式是B_____
A.x%=(k%=5) B.x%=(k-4%5)C.x%=k-k%5 D.(x%=k)-(k%=5) 14.以下叙述正确的是___D__ A.输入量可以是一个实型常量, 例如:scanf("%f",3.5);
B.只有格式控制,没有输入项,也能正确输入数据到存, 例如:scanf("a=%d,b=%df");
C.当输入实型数据时,格式控制部分可以规定小数点后位数, 例如:scanf(“%4.2f”,&f);
D.当输入数据时,必须指明变量地址, 例如:scanf(“%f”,&f);
15.设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是_D_ A.把x和y按从大到小排列 B.把x和y按从小到大排列
. -可修遍-
- .
C.无确定结果 D.交换x和y中的值 16.以下程序的输出结果是__D___ main() {
int a=12,b=12;
printf(“%d,%d\\n”--a,++b); }
A.10 10 B.12 12 C.11 10 D.11 13 17.以下程序运行后,输出结果是__C____ main()
{char*s="abcd"; s+=2;
printf("%1d\\n",s) }
A.cde B.字符c的ASCII码 C.字符c的地址 D.出错 18.以下程序的输出结果是_C___ main() {int m=5;
if(m++>5)printf("%d\\n",m); else printf("%d\\n",m--) }
A.7 B.6 C.5 D.4
19.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为__B__ if(aelse if(a . -可修遍- - . 20.在执行以下程序时,如果从键盘输入:ABCdef<回车>,则输出为_B___ #include while((ch=getchar())!='\\n') {if(ch>='A'&&ch<=’Z’)ch=ch+32; else if(ch>=’a’&&ch<=’z’)ch=ch-32 printf(“%c”,ch); } printf(“\\n”); } A.ABCdef B.abcDEF C.abc D.DEF 21.下面能正确进行字符串赋值操作的语句是__A__ A.char s[5]={“\\ABCDE”} B.char s[5]={‘A’,’B’,’C’,’C.char *s;s={“ABCDEF”}; D.char *s;scanf(“%s”,s); 22.当执行以下程序段时,描述正确的选项是__A__ x=-1; do {x=x*x;} while(!x); A.循环题将再执行一次 B.循环题将执行两次 C. 循环题将执行无限次 D.系统提示有语法错误 23.执行以下程序后,输出结果是___D main() {int y=10; do{y--;}while(--y); printf(“%d\\n”,y--); } A.-1 B.1 C.8 D.0 . -可修遍- ’,’E’}; D - . 24.在下列选项中,没有构成死循环的程序是__C_ A.int i=100; B.for(;;); while(1) {i=i&100+1; if(i>100) break; } C.int k=1000; D.int s=36; do{++k;}while(k<=1000); while(s); --s; 25.执行语句:for(i=1;i++<4;);后,变量i的值是__C__ A.3 B.4 C.5 D.不定 26.以下程序运行后,如果从键盘输入ABCDE<回车>,则输出结果为______ #include while(*(str+num)!=’\\0’)num++; return(num); } main() {char str[10],*p=str; gets(p);printf(“%d\\n”,func(p)); } A.8 B.7 C.6 D.5 27.运行以下程序后,如果从键盘输入china<回车>,则输出结果为___ #include while((ch=getchar())!=’\\n’) switch(ch) {case ‘a’: case ’h’: . -可修遍- - . default:v1++; case’0’:v2++; } printf(“%d,%d\\n”,v1,v2); } A.2,0 B.5,0 C.5,5 D.2,5 28.若以下程序所生成的可执行文件名为fiel.exe,当打入以下命令执行该程序时,程序的输出结果是_____ FILE1 CHINA BEIJING SHANGHAI main(int argc,char*argv[]) { while(argc-- >0) {++argv;printf(“%s”,*argv);} } A. CHINA BEIJING SHANGHAI B. FILE1 CHINA C.C B S D.F C B 29.下面程序的运行结果是____ main() {char ch[7]={“65ab21”}; int i,s=0; for(i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2) s=10*s+ch[i]-‘0’; printf(“%d\\n”,s); } A.12ab56 B.6521 C.6 D.62 30.运行下面的程序,如果从键盘输入: ab<回车> c<回车> def<回车> 则输出结果为____ #include . -可修遍- BEIJING - . main() {char c[N]; int i=0; for(; i A.a B.a C.ab D.abcdef b b c d c d e d f 31.以下程序运行后,输出结果是_____ #include {char *a= “abded”; int i; i=ss(a); printf(“%d\\n”,i); } A.8 B.7 C.6 32.以下程序运行后输出结果是____ #include . D.5 -可修遍- - . main() {int k=4,m=1,p; p=func(k,m);printf(“%d”,p); p=func(k,m);printf(“%d”,p); } A.8,15 B.8,16 C.8,17 D.8,8 33.以下程序运行后,输出结果是____ #include printf(“%4.1f\\n”,S(a+b)); } A.49.5 B.9.5 C.22.0 34.以下程序运行后,输出结果是___ main() {static char a[]=”ABCDEFGH”,b[]=”abCDefGh”; char *p1,*p2; int k; p1=a;p2=b; for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k)) printf(“%c”, *(p1+k)); printf(“\\n”); } A.ABCDEFG B.CDG C.abcdefgh 35.以下程序执行后,a的值是_____. main() { int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf(“%d,\\n”,a); } . D.45.0 -可修遍- D.abCDefGh - . A.4 B.1 C.0 D 运行时出错,a无定值 36.以下程序运行后,输出结果是______ int d=1; fun(int p) { int d=5; d+=p++; printf(“%d”,d); } main() { int a=3; fun(a); d+=a++; printf(“%d”,d); } A.84 B.99 C.95 D.44 37.以下程序运行后,输出结果是____ main() {char ch[2][5]={“693”,”825”},*p[2]; int i,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>=’0’&&p[i][j]<=’9’;j+=2) s=10*s+p[i][j]-‘0’; printf(“%d\\n”,s); } A.6385 B.22 C.33 D.693825 38.若有以下程序段,输出结果为_____ int **pp,*p,a=10; p=&a; pp=&p; printf(“%d”,**pp); A.10 B.p的地址 C.a的地址 D.pp的地址 39.若已建立以下的链表结构,指针p,q分别指向图中所示的结点,则不能将q所指的结点插 . -可修遍- - . 入到链表末尾的一组语句为_____ Data a b NULL c NULL next p q A.q->next=NULL; p=p->next; p->next=q; B.p=p->next;q->next=p->next;p->next=q; C.p=p->next;q->next=p;p->next=q; D.p=(*p).next;(*q).next=(*p).next;(*p).next=q; 40.以读写的方式打开一个已有的文件filel,下面有关fopen函数正确的调用方式为_____ A.FILE *fp; fp=fopen(“filel”,”r”); B.FILE *fp; fp=fopen(“filel”,”r+”); C.FILE *fp; fp=fopen(“filel”,”rb”); D.FILE *fp; fp=fopen(“filel”,”rb+”); 二.填空题 1.设有变量定义: int a=5,b=4; 则表达式(--a>b++)?--a;b++的值为____ 2.某C编译系统规定,int型数据占2字节,则定义: struct node { int x; long y; }z; . -可修遍- - . 后,sizeof(z)=_____ 3.设有变量定义: int a[10]={1,2,3,4,5,6,7}; int *p=a; 则表达式*++p的值为_____ 4.下列程序用于计算 s=1+x+x2/2!+x3/3!….+xi/i!+….的近似值。 #include float s,t=1.0,x; scanf(“%1f”,&x); s=t=1.0; while(fabs(t)>1.0e-5) {i++; t=____; s+=t; } printf(“s=%f\\n”,s); } 5.下面程序用于将输入的三个数从小到大排序输出。 void main() {int a,b,c,x,y; scanf(“%d%d%d”,&a,&b,&c); if(_____) {x=a;y=b;} else {x=b;y=a;} if(______) x=c; else if(y>c) y=c; printf(“%d,%d,%d”,y,a+b+c-x-y,x);} 6.以下程序将输入的一行字符串中的字母全部变成大写输出。 #include {char str[255]; int i=0; while((str[i++]=getchar())!=’\\n’); str[i-1]=’\\0’; for(i=0;str[i]!=’\\0’;i++) if(str[i]>=’a’&&str[i]<=’z’) str[i]=(________); printf(“\\n%s\\n”,str); . -可修遍- - . } 7.程序运行后,输出4,16,256。 test() {_______x=2; x=x*x; printf(“%d”,x); } main() { test(); test(); test(); } 8.函数trans()实现对给定的十进制整数d(d>=0),译成s(2<=s<=16)进制表示形式的字符串。 char trans(unsigned int d,int s) { char digits[]=”0123456789ABCDEF”; char buf[17]; int i=16; if (s<2||s>16) return(0); buf[i]=’\\0’; do { buf[--i]=digits[d%s]; ( ); }while ( ); printf(“%s”,&buf[i]); } main() {int s,d; scanf(“%d,%d”,&s,&d); printf(“%4d=”,d); trans(d,s); printf(“ %d\\n”,s ); } 三.阅读下列程序,写出结果; [程序1] main() {int i,x; scanf(“%d”,&x); for (i=2;x%i;i++); printf(“%d\\n”,i==x); } 运行后,从键盘输入3,运行结果为:( ); 从键盘输入4,运行结果为:( ); [程序2] main() {int i; . -可修遍- - . for (i=1;i<6;i++) { if (i%2) else continue; printf(“$”); } printf(“#”); } printf(“&\\n”); 运行结果为:( ) [程序3] main() {int n[3],i,j,k; for (i=0;i<3;i++) k=2; n[i]=0; for (i=0;i printf( for (j=0;j<=k;j++) “n[j]=n[i]+1; %d\\n”,n[k]); 运行结果为:( ) [程序4] long f(int n) {long s; if ((n==1)||(n==2)) else s=2; return s; s=n+f(n-1); main() } { long x; x=f(4); printf(“%d\\n”,x);} 运行结果为:( [程序5] #include { if ((i%m==0)&&(i%n==0)) { printf( “%d\\n”,i); } break; i++; } }while (i!=0); . -可修遍- ) - . 运行结果为:( ) 四.编程题 1、找出1~100之间的全部“同构数”。所谓“同构数”是指一个数,他出现在他的平方数的右端。如6的平方是36,6就是同构数。 2、编程实现二维数组()的转置(即行列互换)。 3、按下述递归定义编写一个计算幂级数递归函数。 1 xn = x . n =0 * xn-1 -可修遍- 因篇幅问题不能全部显示,请点此查看更多更全内容