C语言试卷(2000-1-5).doc_第1页
C语言试卷(2000-1-5).doc_第2页
C语言试卷(2000-1-5).doc_第3页
C语言试卷(2000-1-5).doc_第4页
C语言试卷(2000-1-5).doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C 语言模拟考题一、选择题1、 C语言中, char、 int、 float和double类型的数据分别占用【1】个字节。 【1】 A) 2、2、3、4 B)1、2、4、6 C) 1、2、4、82、若执行printf(%dn, strlen(anx41)语句其输出结果是 【2】 。【2】A) 8B) 7C) 6D) 43、若int a, b, c; 则表达式(a=2, b=5, b+, a+b)的值是 【3】 。【3】A) 7B) 8C) 6D) 24、以下正确的叙述是 【4】 。【4】A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误5、若执行以下程序段:int a=1, b=2, m=2, n=2;(m=ab)&+n;则n的值是 【5】 。【5】A) 1B) 2C) 3D) 4注:类似的如以下题:int a=1, b=1, c=0;if (+a | +b) c=a+b;printf(a=%d b=%d c=%dn, a,b,c);6、已知各变量的类型如下:int i=8, a, b;double x=1.42, y=5.2;则以下符合C语言语法的表达式是 【6】 。【6】A) a+=a-=(b=4)*(a=3)B) a=a*3=2C) x%(-3)D) y=float(i)7、以下程序的运行结果是 【7】 。#include main() int m=5; if(m+5) printf(%dn, m); else printf(%dn, m+);【7】A) 7B) 6C) 5D) 48、以下程序的运行结果是 【8】 。#include main() char c=y; if(c=a&c=v&c=z) c-=21; putchar(c);【8】A) yB) dC) yD) d9、若定义int i; 则以下循环语句的循环执行次数是 【9】 。for(i=2; i=0;) printf(%d, i-);【9】A) 无限次B) 0次C) 1次D) 2次10、以下程序的运行结果是 【10】 。#include main() int a43= 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12; int *p, j; p=a0; printf(%2d,%2d,%2d,%2dn, *p, *(*(a+3)+2), p2, *(p+7);【10】A) 4, 4, 9, 8 B) 程序出错C) 1, 10, 12, 8 D) 1, 9, 2, 7/*/11、以下程序的输出结果是 【11】 。#include main() int i=0; while(1) printf(*); i+; if(i3) break; printf(n);【11】A) *B) *C) *D) *12、若定义a2=1,2,3,4,5,6,7; 则a数组中行的大小是 【12】 。【12】A) 2B) 3C) 4D) 无确定值13、要使以下程序中t的输出结果是4,则输入a和b应满足的条件是 【13】 。#include main() int s, t, a, b; scanf(%d%d, &a, &b); s=t=1; if(a0) s+=1; if(ab) t=s+t; else if(a=b) t=5; else t=2*s; printf(%dn, t);【13】A) a0并且abB) a0并且a0并且abD) ab14、以下程序的运行结果是 【14】 。#include void f(int b) int i=0; while(bi=10) bi+=2; i+; main() int i, a= 1, 5,10, 9,13, 7; f(a+1); for(i=0; i6; i+) printf(%d , ai);(从第一个元素起到大于10为止,各加2)【14】A) 2 7 12 11 13 9B) 1 7 12 11 13 7C) 1 7 12 11 13 9D) 1 7 12 9 13 715、以下各语句或语句组中,正确的操作是 【15】 。【15】A) char s5=abcdeB) char *s; gets(s);C) char *s; s=abcde;D) char s5; scanf(%s, &s);16、以下C语言中,对函数不正确的描述是 【16】 。【16】A) 当用数组名作形参时,形参数组改变可使实参数组随之改变B) 允许函数递归调用C) 函数形参的作用范围只是局限于所定义的函数内D) 被调函数必须在主调函数之前17、在循环语句的循环体中,continue语句的作用是 【17】 。【17】A) 立即终止整个循环B) 继续执行continue语句之后的循环体各句C) 结束本次循环D) 结束本次循环并跳出循环18、以下程序的运行结果是 【18】 。#include main() char *s=xcbc3abcd; int a, b, c, d; a=b=c=d=0; for(; *s; s+) switch(*s) case c: c+; case b: b+; default : d+; break; case a: a+; printf(a=%d,b=%d,c=%d,d=%dn, a, b, c, d);(a=a的个数、b=b,c的个数、c=c的个数、d=非a的个数)【18】A) a=1,b=5,c=3,d=8B) a=1,b=2,c=3,d=3C) a=9,b=5,c=3,d=8D) a=0,b=2,c=3,d=319、若fp为文件指针,且文件已正确打开,i为long型变量,以下程序段的输出结果是【19】 。fseek(fp, 0, SEEK_END)i=ftell(fp);printf(i=%ldn, i);【19】A) -1B) fp所指文件的长度,以字节为单位C) 0D) 220、以下程序的输出结果是 【20】 。#include int i;main() int i=1, j=2; fun(fun(i, &j), &j);fun(int a, int *b) static int m=2; i+=m+a; m=+(*b); printf(%d,%dn, i, m); return (m);【20】A) 3,3B) 3,3C) 3,3D) 3,3 9,4 6,3 9,3 6,421、定义compare(char *s1, char *s2)函数,以实现比较两个字符串大小的功能。以下程序运行结果为-32,选择正确答案填空。#include main() printf(%dn, compare(abCd, abc);compare(char *s1, char *s2) while(*s1&*s2& 【21】 ) s1+; s2+; return *s1-*s2;【21】A) *s1!=*s2B) *s1=*s2C) *s1=*s2D) s1!=s222、若有以下程序:#include main(int argc, char *argv) while(-argc) printf(%s, argvargc); printf(n);(逆序参数回送)该程序经编译和连接后生成可执行文件S.EXE。现在DOS提示符下键入S AA BB CC回车,则输出结果是【22】 。【22】A) AABBCCB) AABBCCSC) CCBBAAD) CCBBAAS23、若有定义typedef char STRING255; STRING s; 则s是 【23】 。【23】A) 字符指针数组变量B) 字符数组变量C) 字符变量D) 字符指针变量24、以下程序的运行结果是 【24】 。#include void fun(char *s);main() static char str=123; fun(str);void fun(char *s) if(*s) fun(+s); printf(%sn, -s); 【24】A) 3B) 123C) 1D) 3 32 12 12 23 321 1 123 12325、判断以下程序段的结果是 【25】 。#define A 3#define B(a) (A+1)*a).int x;x=3*(A+B(7);【25】A) 程序错误,不允许嵌套宏定义B) x=93C) 语法错误,宏体中不允许带括号D) x=2126、以下程序的运行结果是 【26】 。#include struct stu int x; int *y;*p;int dt=1,2,3,4;struct stu a4=5, &dt0, 6, &dt1, 7, &dt2, 8, &dt3;main() p=a; printf(%d, (+p)-x); printf(%d, +p-x); printf(%dn, +(*p-y);【26】A) 6,7,3B) 6,6,3C) 6,6,2D) 5,7,227、以下程序的运行结果是 【27】 。#include void sub(int *x, int y, int z) *x=y-z;main() int a, b, c; sub(&a, 10, 5); sub(&b, a, 7); sub(&c, a, b); printf(%d,%d,%dn, a, b, c);【27】A) 10,-2,5B) 10,5,7C) 10,-2,7D) 5,-2,728、以下程序的运行结果是 【28】 。#include void abc(char *p) int i, j; for(i=j=0; *(p+i)!=0; i+) if(*(p+i)n) *(p+j)=(p+i); j+; *(p+j)=0;main() char str=morning; abc(str); puts(str);(保留小于字母n的字母)【28】A) morigB) morningC) migD) or29、若有定义char *language=FORTRAN, BASIC, PASCAL, JAVA, C; 则language2的值是【29】 。【29】A) 一个字符B) 一个地址C) 一个字符串D) 不定值30、以下程序的运行结果是 【30】 。#include main() int a=3, b=2, c=1; int b=5, c=12; c-=b*2; printf(a=%d,b=%d,c=%dn, a, b, c); a+=c; printf(a=%d,b=%d,c=%dn, a, b, c);【30】A) a=3,b=2,c=-3B) a=3,b=5,c=2 a=0,b=2,c=-3 a=5,b=5,c=2C) a=3,b=2,c=1D) a=3,b=5,c=2 a=5,b=5,c=2 a=5,b=2,c=131、以下程序的运行结果是 【31】 。#include #define DEBUG 0main() int a=10, b=20, c; c=a/b; #ifdef DEBUG printf(a=%d,b=%dn, a, b); #endif printf(c=%dn, c);【31】A) a=10,b=20B) 编译出错C) a=10,b=20D) c=0 c=032、以下程序的输出结果是 【32】 。#include main() union long a; int b; char c; m; printf(%dn, sizeof(m);【32】A) 2B) 4C) 1D) 733、若执行以下程序段int x=3, y=6, z;z=xy2;则z的二进制值是 【33】 。【33】A) 00011011B) 00010100C) 00011000D) 0000011034、若有以下定义和语句,则对a数组元素地址的正确引用是 【34】 。int a23, (*p)3;p=a;【34】A) *(p+2)B) p2C) p1+1D) (p+1)+235、若执行以下程序段,其运行结果是 【35】 。char c=a, b, 0, c, 0;printf(%sn, c);【35】A) ab cB) abC) abcD) ab36、若有int max(), (*p); 为使函数指针变量p指向函数max,正确的赋值语句是【36】 。【36】A) p=max;B) *p=max;C) p=max(a, b);D) *p=max(a, b);(应为(*p)())37、若有定义int a35, i, j; (且0i3, 0j5),则aij不正确的地址表示是 【37】 。【37】A) &aijB) ai+jC) *(a+i)+jD) *(*(a+i)+j)38、以下程序的运行结果是 【38】 。#include main() enum aa, bb=5, cc, dde; for(e=bb; e=aa; e-) printf(%d, e); printf(n);【38】A) 543000B) 5430C) 543210D) 程序出错39、C语言规定,函数返回值的类型由 【39】 所决定。【39】A) return语句中的表达式类型B) 调用该函数时的主调函数类型C) 调用该函数时的形参类型D) 在定义该函数时所指定的函数类型40、若建立以下链表结构,其指针p,q定义如下:struct node int data; struct node *next;p, q;p,q指向图中所示结点,则能将q所指的结点插入到链表末尾组成单向链表的一组语句是【40】 。p q 10 20 30 NULL(应为*p, *q,除C外都能实现)【40】A) q-next=NULL;B) p=p-next; p=p-next; q-next=p-next; p-next=q; p-next=q;C) p=p-next;D) p=(*p).next; q-next=p; (*q).next=(*p).next; p-next=q; (*p).next=q;二、请正确填充下面的划线部分,使其完成所要求的功能:(本大题共20个空,每空2分,共40分。请将答案写在答题卡对应栏中,答在试卷上不得分)1、计算sum=1+1/2+1/4+.+1/50的值,并显示出来。#include main() int i=2; float sum=1.0; while(i= 【1】 ) sum+=1/ 【2】 ; i+=2; printf(sum=%fn, sum);2、以下程序是用来统计从键盘输入的一个正整数中各位数字中零的个数,并求各位数字中最大者。例如:1080其零的个数是2,各位数字中最大者是8。#include main() unsigned long num, max, t; int count; count=max=0; scanf(%ld, &num); do t= 【3】 ; if(t=0) +count; else if(maxt) 【4】 ; num/=10; while(num); printf(count=%d,max=%ldn, count, max);3、以下程序用来检查二维数组是否对称(即:对所有i,j都有aij=aji)。#include main() int a44=1,2,3,4, 2,2,5,6, 3,5,3,7, 8,6,7,4; int i, j, found=0; for(j=0; j4; j+) for(i=0; i4; i+) if( 【5】 ) found= 【6】 ; break; if(found) break; if(found) printf(不对称n); else printf(对称n);4、以下程序用来完成数学函数f(x, y)的计算:#include #include main() double x, y, z, f(); scanf(%lf%lf, &x, &y); z=x*y/f( 【7】 ); printf(result=%lfn, z);double f(double a) double f1; f1=pow(3, a)+sqrt(1+ 【8】 ); return f1;5、以下程序用来输出字符串。#include main() char *a=for, switch, if, while; char *p; for(p=a; pa+4; p+) printf(%sn, 【9】 );6、以下程序是用来输出如下图形: * #*# *#*#* #*#*#*#*#*#*#*#*#include main() int i, j; for(i=1; i=5; i+) for(j=1; j=5-i; j+) printf( ); for(j=1; j=2*i-1; j+) if printf(*); else printf(#); printf(n); 7、以下程序是用来输入5个整数,并存放在数组中,找出最大数与最小数所在的下标位置,并把两者对调,然后输出调整后的5个数。#include main() int a5, t, i, maxi, mini; for(i=0; i5; i+) scanf(%d, &ai); mini=maxi= 【11】 ; for(i=1; iamaxi) 【13】 ; printf(最小数的位置是:%3dn, mini); printf(最大数的位置是:%3dn, maxi); t=amaxi; 【14】 ; amini=t; printf(调整后的数为: ); for(i=0; i5; i+) printf(%d , ai); printf(n);8、以下程序是用来从10到99数字中挑出能被3整除且至少有一位是5的两位数,并打印出所有这样的数及其个数。#include main() int k, m=0; for(k=10; k=99; k+) m+=sub(k); printf(个数为: %dn, m);sub(int k) int a1, a2, n=0; a2= 【15】 ; a1=k/10; if(k%3=0&( 【16】 ) printf(%d , k); return 1; else return 0;9、以下程序是把文件file1.dat中的内容复制到一个名为file2.dat的新文件中。#include main() FILE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论