C试题库(29页).doc

上传人:1595****071 文档编号:35417921 上传时间:2022-08-21 格式:DOC 页数:29 大小:320.50KB
返回 下载 相关 举报
C试题库(29页).doc_第1页
第1页 / 共29页
C试题库(29页).doc_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《C试题库(29页).doc》由会员分享,可在线阅读,更多相关《C试题库(29页).doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-C试题库-第 29 页20002001学年程序设计基础C试卷一、单项选择题(每小题 2 分,共 30 分)1. C 语言程序中可以对程序进行注释,注释部分必须用符号_括起来。 A、 和 B、和 C、“/*”和”*/” D、“*/”和”/*”2. 下列运算符中,优先级最低的是_。 A、* B、!= C、+ D、=3. 若变量已正确定义,表达式 (j=3, j+) 的值是_ 。A、3 B、 4 C、5 D、04. 已知字符 a 的ASCII码为 97 ,执行下列语句的输出是_。 printf (%d, %c, b, b+1 ) ; A、98, b B、语句不合法 C、98, 99 D、 98,

2、c5. 表达式strcmp(“box”, “boss”) 的值是一个_。 A、 正数 B、 负数 C、 0 D、 不确定的数6. 数组定义为 int a32=1, 2, 3, 4, 5, 6,数组元素_的值为6。 A、a32 B、a21 C、a12 D、a237. 要调用数学函数时,在#include命令行中应包含_。 A、 ”stdio.h” B、 ”string.h” C、 ”math.h” D、 ”ctype.h”8. 判断i和j至少有一个值为非0的表达式是_。 A、 i!=0 & j!=0 B、i*j!=0 C、!(i=0 | j=0) D、i&j9. 若a是基本整型变量,c是单精度实

3、型变量,输入语句_是错误的。 A、scanf(”%d,%f”, &a, &c); B、scanf(”d=%d, c=%f”, &a, &c); C、scanf(”%d%f”, &a, &c); D、scanf(”%d%f”, a, c);10. 若变量已正确定义并且指针p已经指向某个变量x,则(*p)+相当于_。 A、p+ B、x+ C、*(p+) D、&x+11. 若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, _是正确的。 A、p2=p1; B、p2=*p1; C、p2=&p1; D、p2=*p1;12. 下列程序段的输出是_。 int c=1, 3, 5; int *k

4、=c+1; printf(%d, *+k); A、 3 B、 5 C、 4 D、613. 不正确的赋值或赋初值的方式是_。 A、char str=string; B、char str7=s, t, r, i, n, g;C、char str10;str=string;D、char str7=s, t, r, i, n, g, 0;14. 对于以下结构定义,+p-str中的+加在_。struct int len; char *str; *p; A、指针str上 B、指针p上 C、str指的内容上 D、以上均不是15. 对于如下说明,语法和语义都正确的赋值是_。int c, *s, a=1, 3,

5、 5;A、c=*s; B、 s0=a0; C、s=&a1; D、 c=a;二、填空题(每小题 2 分,共 20 分)1. 写出下列程序段的输出结果。 float x1, x2; x1=3/2; x2=x1/2; printf(%d, %.1f, (int)x1, x2) ;2. 表达式 (722 ) 的值是_。 3. 写出下列程序段的输出结果。 #define A 10 #define B (AA+2)-2 printf(%d, B*2);4. 写出判断字符变量c是英文字母的表达式 。5. 写出下列程序段的输出结果。 int k, x;for (k=0, x=0; k0) ? 2*f(n-1)

6、+f(n-2) : -1); 8. 写出下列程序段的输出结果。 char str=hellotworldn; printf(%d, %cn, sizeof(str), *(str+10);9. 输入12345#后,写出下列程序的输出结果。 void main() char c; for(c=getchar(); getchar()!=#; c=getchar() putchar(c);10. 执行程序时,*+argv1的值是_。三、程序阅读题(每题5分,共20分)1. 若输入 3 1 2 3 , 则以下程序的输出结果是_。 #include stdio.h void main() int i,

7、 j, n, a10; scanf(%d, &n); for (i=0; in; i+) scanf(%d,&ai); for (i=0; in; i+) for (j=0; jn; j+) printf(%d, , a(i+j)%n);2. 若输入89 76 24 25 9 8 11 16 35 4 , 则以下程序的输出结果是_。 #include stdio.h #define N 10 main() int xN, y1N, y2N; int i, j, n1, n2, t, p; n1=n2=0; for(i=0;iN;i+) scanf(“%d”,& xi); if(xi % 2=0

8、) y1n1+=xi; else y2n2+=xi; for(i=1; in1; i+) for(j=0; jy1j+1) t=y1j; y1j=y1j+1; y1j+1=t; for(i=0; in2-1; i+) p=i; for(j=i+1; jn2; j+) if(y2py2j) p=j; if(p!=i) t=y2i; y2i=y2p; y2p=t; for(i=0; in1; i+) printf(%d, , y1i); for(i=0; in2; i+) printf(%d, , y2i);3. 以下程序的输出结果是_。 #include int z; void p(int *x

9、, int y) +*x; y-; z=*x+y+z; printf(%d, %d, %d#, *x, y, z);void main() int x=1, y=5, z=9; p(&x, y); printf(%d, %d, %d#, x, y, z);4. 若输入 -6+15*3/5= , 则以下程序的输出结果是_。 #include void main() int m=0, sum=0; char c, oldc=+; do c=getchar(); if(c=0) m=10*m+c - 0; else if(oldc=+) sum += m; else sum -= m; m=0; o

10、ldc=c; printf(%d, , sum); while(c!=);四、程序填空题(每空 2 分,共 20 分)1. 下列程序的功能是创建单向链表。 #include #include struct link char name10; intmark; struct link * next; void insert(char *, int); struct link * head = NULL; main() char name10; int mark; struct link * t; while ( 1 ) scanf(%s %d, name, &mark); if ( strcmp

11、(name, #) = 0 ) break; _(1)_;for (t=head; _(2)_) printf(: %dn, t-name, t-mark);void insert(char * name, int mark)struct link * p;p = _(3)_ ;strcpy(p-name, name);p-mark = mark; _(4)_;if ( head != NULL ) _(5)_;head = p;2. 是带命令行参数的程序。运行prog filename时,将文本文件filename中的内容原样输出;运行prog -u filename时,将文本文件filen

12、ame中的所有字母以大写方式输出(其余字符原样输出);运行prog -d filename时,只将文本文件filename中的数字输出。# include # include void main(int argc, char * argv)FILE *fp;char * filename, ch; int tag=0;if (argc3) printf(“Argument errorn”); return; if (argc = 3) if (strcmp(argv1, “-u”) = 0) tag=1;else if (strcmp(argv1, “-d”) = 0) tag=2;else

13、printf(“Option errorn”); return;_(6)_; else filename = argv1;if (_(7)_) printf(“Cannot open filen”); return;while (_(8)_ ) ch = fgetc(fp);if ( tag = 0 ) putchar(ch);else if ( tag = 1 ) _(9)_; else if ( _(10)_) putchar(ch);fclose(fp);五、编程题 ( 共 10 分,混合班学生做第2题,其他学生做第1题)1. 程序说明 (10分) 输入m和n(mn0)后,计算下列表达式

14、的值并输出。 m! n!*(m-n)! 要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float。2. 程序说明 (10分) 编写函数strcmp(char * s1, char * s2)。若s1和s2均是数字串(包括+/-号),则按照十进制整数大小进行比较;否则按照Ascii序进行比较。s1大于/等于/小于s2时,分别输出1/0/-1。可以直接调用atoi函数。20002001学年程序设计基础C参考答案一、单项选择题(每小题 2 分,共 30 分)题号123456789101112131415选择CDADABCBDBABCAC二、填空题(每小题 2 分,共 20 分)121

15、3-34c=a&c=A&cnext(3)(struct link *)malloc(sizeof(struct link)(4)p-next = NULL(5)p-next = head(6)filename = argv2(7)(fp=fopen(filename, “r”) = NULL(8)! feof(fp)(9)putchar(toupper(ch)(10)tag= 2& isdigit(ch) 五、编程题 ( 共 10 分,混合班学生做第2题,其他学生做第1题)1、#include float fact(int);main()intm, n;float val;scanf(“%d%

16、d”, &m, &n);val = fact(m) / (fact(n) * fact(m-n);printf(“Value: %fn”, val);float fact(int n)if ( n = 0 ) return 1;return(fact(n-1) * n);float fact(int n) int i; float f=1;for(i=1; i=n; i+) f=f*i; return f; 2、#include #include #include int strcmp(char * s1, char * s2)inttoken =0, val1, val2, n, i;for

17、 (i=0; s1i!=0; i+) if ( s1i!=+ & s1i !=- & !isdigit(s1i) token = 1; break; for (i=0; !token & s2i!=0; i+) if ( s2i!=+ & s2i !=- & !isdigit(s2i) token = 1; break; if ( token = 0 )val1 = atoi(s1);val2 = atoi(s2);if ( val1 val2 ) n = 1;else if ( val1 s2i ) return 1;else if ( s1i s2i ) return 1;if ( str

18、len(s1) = = strlen(s2) ) return 0;if ( si = = 0 ) return 1;else return 1;20002001学年“程序设计基础-C”试卷一、单项选择题(每题2分,共30分)1. _是合法的用户自定义标识符。A、 b-b B、float C、 D、 _isw 2. 若变量已正确定义并赋值,表达式_不符合C语言语法。A、a*b/c; B、3.14%2 C、2, b D、a/b/c 3. _是不正确的字符常量。A、n B、1 C、a D、1014. 在 C 程序中,用_表示逻辑值“真”。A、1 B、非 0 的数 C、非 1 的数 D、 大于 0

19、的数5. _把x、y定义成float类型变量,并赋同一初值。A、float x, y=3.14; B、float x, y=2*3.14; C、float x=3.14, y=x=3.14; D、float x=y=3.14;6. 若变量已正确定义,表达式_的值不是2。A、2&3 B、1b) k=0; else k=1;”和_等价。 A、k=(ab)?1:0; B、k=ab;C、k=a=b; D、apk B、*p.pk C、*p-pk D、二、填空题(每题2分,共20分)11. 表示“xyz”的C表达式是_。12. 下列程序段的输出是_。 printf(%on, 01011); 13. 下列程

20、序段的输出是_。int k;float s;for (k=0, s=0; k 7; k +)s += k/2;printf(%d, %fn, k, s);14. 下列程序段的输出是_。#define f(a, b, x) a*x+bprintf(%d, %dn, f(3,2,1), f(6, 5, f(3, 2, 1);15. 下列程序段的输出是_。main() int k; for(k=1; k5; k+) if(k % 2) printf(*); else continue; printf(#);16. 下列程序段的输出是_。# include int f(int x) static y=

21、1; y+; x += y; return x;void main() int k; k=f(3); printf(%d %dn, k, f(k);17. 下列程序段的输出是_。int *p, *q, k = 5 , j = 6 ; q = &k ; p = q ; q = &j ;printf(%d, *p);18. 函数void f(char s , char t ) int k=0;while (sk=tk) k+; 等价于void f(char *s, char *t)while (_);19. 下列程序段的输出是_。char *a2=one, two, *p=a; printf(%s

22、, *(p+)+1);printf(%cn, *p-1); 20. 用typedef定义一个文件指针FP。三、程序阅读题(每题4分,共16分)1. 输入elephant后,下列程序的输出结果是_。# include void main() int i=0, k, ch; static int num5; char alpha =a, e, i, o, u, in80; gets(in); while(ini) for(k=0; k5; k+) if(ini = alphak) numk+; break; i+; for(k=0; k5; k+) if(numk) printf(%c%d, al

23、phak, numk); printf(n);2. 下列程序的输出结果是_。#includevoid f(int n) if(n0) putchar(-); n = -n; if(n/10) f(n/10); putchar(n%10+0);main() f(-610);3. 输入0 10 2 7后,下列程序的输出结果是_。#includevoid p(int v) int i, k, temp;for (i=1; i=0 & vkvk+1; k-) temp=vk;vk=vk+1;vk+1=temp;main() int k, a4;for(k=0; k4; k+) scanf(%d,& a

24、k);p(a);for(k=0; k4; k+) printf(%d , ak);4. 下列程序编译后生成 t.exe, 运行 t input output zoo oil 的输出结果是_。void main(int argc, char * argv ) int k; char *p=argv1; for(k=2; k0) p=argvk; printf(%sn, p);四、程序填空题(每空2分,共20分)1. 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。要求将6100之间的偶数都表示成两个素数之和。素数指只能被1和自身整除的正整数,1不是素数,2是素数。#includei

25、nt prime(int n) /* 判断n是否为素数 */ int k;for (k=2; k=n/2; k+) if (n%k=0) return 0;return (1) ;main() int i, k;for (i=6 ; i=100; i+=2)for (k=2; k10y= 0 x=10 3x+5 x=y & y=z (错1项扣1分)22137, 9 (错1个数字扣1分)45, 25 (错1个数字扣1分)5*#*# (错2个字符扣1分)65, 8 (错1个数字扣1分)758*s+=*t+9Ne, s (ne给1分, s给1分)10typedef FILE* FP (错1项扣1分)

26、三、程序阅读题(每题4分,共16分)1A1e2 (错1个扣1分)2-610 ( 错1个扣1分)310, 7, 2, 0 (错1个扣1分)4zoo四、程序填空题(每空2分,共20分)(1)1或kn/2或k=n/2+1(2)prime(k) & prime(i-k) (错1项扣1分)(3)&a , &b或&b, &a (错1项扣1分)(4)int *x , int *y 或其它变量名(错1项扣1分)(5)T=*x(6)*x=*y(7)*y=t(8)p!=NULL或p!=0或p(9)q=p-next(10)p=q注:(4)-(7)作为一个整体评分,实现*x和*y交换五、编程题(第1题4分,第2题10

27、分,共14分)1、# include math.h 头文件1分main( ) float x, y; 变量说明、输入、输出 1 分 scanf(%f, &x); if(x10) y=exp(x); 2分 else if(x=10) y=0; else y=3*x+5; printf(%fn, y);2、# include 头文件、变量说明 1 分 main() FILE *fpin; char ch; if ( fpin = fopen(input.txt,r ) = NULL) 2 分 printf( Cant open file input.txtn ); exit(0); while (

28、 !feof( fpin ) 2 分 ch=fgetc(fpin); 2 分 if(ch!= ) putchar(ch); 2 分 fclose( fpin); 关闭文件 1 分或 while (ch=fgetc(fpin)!=EOF) 4 分(读2分,判断2分) if(ch!= ) putchar(ch); 2 分“程序设计基础-C”试题卷A一单项选择题(每题2分,共20分)1. C 语言程序的三种基本结构是顺序结构、选择结构和_结构。A递归B转移C循环D嵌套2. 下列运算符中,优先级最高的是_。A-B+C&D=3. 表达式 !(x0&y0) 等价于_。A!(x0)|!(y0)B!x0|!y0C!x0&!y0D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁