




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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, 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是单精度实型变量,输入语句_是错误的。 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=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;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)+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. 执行程序find nx ould text.txt时,*+argv1的值是_。三、程序阅读题(每题5分,共20分)1. 若输入 3 1 2 3 , 则以下程序的输出结果是_。 #include stdio.h void main() int i, 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) 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, 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; oldc=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(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.c是带命令行参数的程序。运行prog filename时,将文本文件filename中的内容原样输出;运行prog -u filename时,将文本文件filename中的所有字母以大写方式输出(其余字符原样输出);运行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 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)后,计算下列表达式的值并输出。 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 分)11, 0.5213-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%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 (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 ( strlen(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 的数5. _把x、y定义成float类型变量,并赋同一初值3.14。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、*x.pk二、填空题(每题2分,共20分)11. 表示“xyz”的C表达式是_。12. 下列程序段的输出是_。 printf(%on, 01011); 13. 下列程序段的输出是_。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=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, *(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, alphak, 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,& ak);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是素数。#includeint 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分)三、程序阅读题(每题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分,共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 ( !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!(x0)&!(y0)4. 表达式 sizeof(nsum=%dn) 的值是_。A8B9C10D115. 以下选项中不正确的实型常量是_。A0.23E B2.3e-1 C1E3.2 D2.3e06. 表达式_的值不是1。A0?0:1B5%4C!EOFD!NULL7. 数组定义为 int a1111,则数组a 有_个数组元素。A12B144C 100D 1218. 对于以下的变量定义,表达式_是不正确的。struct node int j, k; x, *p=&x;Ap-k=2B(*p).k=2Cx.k=2Dx-k=29. 不正确的赋值或赋初值的方式是_。Achar str =string;Bchar str10; str=string; Cchar *p=string;Dchar *p; p=string;10. 设程序中不再定义新的变量,写出在函数main中可以使用的所有变量_。 #include int z; int p(int x) static int y; return(x+y); void main( ) int a,b; printf(%dn, p(a); Aa, bBa,b,zC a,b,y,zDa,b,x,y,z二、填空题(每题2分,共30分)21. 设字符型变量ch的值是小写英文字母,将它转换为相应大写字母的表达式是_。22. 表达式 101 5) 的值是_。24. 下列程序段的输出结果是_。int a=1;long b=a*0x12345678;printf(%xn, b); 25. 设变量已正确定义,在程序段中填入正确的内容,使程序段和程序段等价。 程序段Afor(k=s=0; k=10; s+=ak+)if (ak0) break; 程序段Bfor(k=0, s=0; ; s+=ak+)if (_) break; 26. 下列程序段的输出结果是_。 #define T 10 #define MD 3*T printf(%d, 30/MD);27. 下列程序段的输出结果是_。 int k, s;for(k=s=0; k10&s=10; s+=k) k+;printf(k=%d, s=%d, k, s);28. 下列程序的输出结果是_。# include int f(int m) static int k=2; k+; return k+m;void main( ) int s; s=f(2); printf(%d, %dn, s, f(s);29. 对于以下递归函数f,调用 f (3) 的返回值是_。f (int n) return (n=0) ? n: f(n-1)+f(n-2); 30. 下列程序段的输出结果是_。 int c =10, 0, -10;int *k=c+2;printf(%d, *k-);31. 下列程序段的输出结果是_。 int k=1, j=2, *p=&k, *q=p; p=&j; printf(%d, %d,*p, *q);32. 下列程序的输出结果是_。 # include char * f(char *str) return str=fun; void main( ) char *str=one; printf(%s, %cn, f(str)+1, *f(str)+1);33. 下列程序的输出结果是_。 #include void p(int *x,int y) + *x; y -;void main() int x=0, y=3; p(&x, y); printf(%d, %d,x, y); 34. 下列程序的输出结果是_。 # include stdio.h void main( ) int j, k, a22; for(k=1; k3; k+) for(j=1; j3; j+) ak-1j-1=(k/j)*(j/k); for(k=0; k2; k+) for(j=0; j2; j+) printf(%d, akj); 35. 用typedef定义一个指向函数的指针类型FP,该函数的返回值为整型。三、程序阅读题(每题5分,共15分)5. 输入c2470f ?后,下列程序的输出结果是_,该程序的主要功能是_。 # include stdio.h int main( ) char ch; long number=0; while(ch=get
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 374-6:2025 EN Protective gloves against dangerous chemicals and micro-organisms - Part 6: Protective gloves for hairdressers
- 【正版授权】 IEC 61000-4-23:2016/AMD1:2025 EN Amendment 1 - Electromagnetic compatibility (EMC) - Part 4-23: Testing and measurement techniques - Test methods for protective devices for
- 【正版授权】 IEC 61850-10:2012/AMD1:2025 EN-FR Amendment 1 - Communication networks and systems for power utility automation - Part 10: Conformance testing
- 黑龙江省大庆市四中2026届化学高二上期中达标检测模拟试题含解析
- 【正版授权】 IEC 60112:2003 FR-D Method for the determination of the proof and the comparative tracking indices of solid insulating materials
- GB/T 17344-2025包装包装容器气密试验方法
- 北流楹联知识培训课件
- 校外安全应急知识培训内容课件
- 校园消防安全知识培训课件教学
- 征兵考试试题及答案
- 公务车驾驶员安全课件
- 地铁安检培训课件
- 2025年豪华别墅室内外装饰设计及施工一体化服务合同
- 废铅酸蓄电池回收处置项目可行性研究报告
- 2025年重庆对外建设有限公司招聘考试笔试试题
- 2025年阿克苏社区专职工作人员招聘真题
- 药学教学课件下载
- 急性下壁心肌梗死患者PCI术后护理个案
- 出生缺陷防治知识课件
- 口腔门诊护理人员管理
- 通山城区污水处理厂运营维护方案
评论
0/150
提交评论