




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c 程序设计试卷 page 1 of 50 一、选择填空:(每题1.5 分,共 15 分)1 以下可以正确表示字符型常数的是。(a) “ a”(b) 297 (c) t (d) “n ”2 typedef struct char name10; int age; char interests20; student; 以上语句中 student 是:(a) 结构体变量,有存储空间 (b)结构体数据类型,无存储空间(c) 结构体变量,无存储空间 (d)结构体数据类型,有存储空间3 函数: void f(void) int i = 12, j; for(j=0; j=100) break; (b)f
2、or(;); (c)int k=1000; do+k; while (k=1000);(d)int s=36 while(s); -s; c 程序设计试卷 page 4 of 50 二、 写出下列程序的运行结果:(共 35 分)1.(8 分) int funa(int *a) a0 +; int funb(int b) b1 += 5; main() int a5 = 2,3,4,5,6; int b5 = 2,3,4,5,6; int *p, i; p = &a0; (*p)+; funb(p); for(i = 0; i 5; i+) printf(%d,ai); p = &
3、;b1; funa(p); funb(p); for(i = 0; i 5; i+) printf(%d,bi); 运行结果:2、(6 分) main() c 程序设计试卷 page 5 of 50 char a=programming, b=language; char *p1,*p2; int i; p1=a; p2=b; for(i=0; *(p1+i)!=0 &*(p2+i)!=0 ;i+)if(*(p1+i)=*(p2+i) printf(%c,*(p1+i); 运行结果是:3、(8 分) int f(int n) if (n=1) return 1; else return
4、 2 * f(n/2); 运行结果: f (20) 的值是多少 ? 4、(6 分) void change (int *a, int *b) c 程序设计试卷 page 6 of 50 int x =* a; *a = *b; *b = x; printf(“%d %d “, *a, *b); void main() int x=10,y=25; change (&x, &y); printf(“%d %d “, x, y); 运行结果:5、(5 分)已知字母 a的 ascii 码为十进制的65,下面程序的输出是void main() char ch1,ch2; ch1=a+5
5、-3; ch2=a+6-3; printf(%d,%cn,ch1,ch2); 答案c 程序设计试卷 page 7 of 50 三、程序填空(每空2 分, 共 38 分)1、下面是一个求数组元素之和的程序。主程序中定义并初始化一个数组,然后计算各数组元素之和,并输出结果。# include int totalsum(int array,int len) _ ; for (int i=0; _ ; i+) _ ; return sum; void main() int a5=2,3,6,8,10; _ ; total = totalsum(a,5); printf( sum of array: %
6、d, total ); 2、从终端读入的文本(用 作为文本结束标志)复制到一个名字c.dat的新文件中。#include file *fp; c 程序设计试卷 page 8 of 50 main() char ch; if (fp= )=null) exit(0); while (ch=getchar()!= )fputc( _); fclose(fp); 3、结构型变量root 包含三部分,其中sp 是指向字符串的指针,next 是指向该结构的指针, data 用以存放整数。请填空完成此结构的类型说明和变量root 的定义。typedef struct list char *sp; _ _;
7、 _; root; 4、已知:typedef struct int x; char *y; node; node tab2=1,ab, 2,cd; node *p=tab; c 程序设计试卷 page 9 of 50 则:表达式 *p-y 的结果为 _ _ 。表达式 *(+p)-y 的结果为: _ _。5、#define maxchar 100 #define true 1 #define false 0 int htoi(); main() int c, i, inrange; char tmaxchar; i = 0; inrange =; while (c = getchar() !=
8、eof & i = 0 & c = a & c = a & c = 0 & si = a & si = a & si = f) n = n * 16 + si - ; ; ; return(n); c 程序设计试卷 page 11 of 50 四、编程题( 14 分)整型数组 int a10中随机地存放有数字09(数字可以重复)。现请编写一个程序,在数组a10 中,按顺序抽取5 个数字,使这5 个数字组成的5 位数为最大(注意:这5个数字的先后顺序必须同其在原数组a10 中的先后顺序相同),将结果保存在另一数组int result5中。实
9、例:若 a10 = 4, 7, 8, 0, 8, 6, 2, 4, 9, 1 则可得: result5 = 8, 8, 6, 9, 1 附:在 int a10中随机存放 10 个数字的代码如下:#include “time.h ”int a10; srand( (unsigned)time(null) ); for ( int i = 0; i 10; i+ ) ai = rand() % 10 / 产生 09 共 10 个随机数赋值给 a10 c 程序设计试卷 page 12 of 50 #include time.hintfindmax( inta, int &nstartpos
10、, intnendpos ); voidmain(intargc , char * argv ) inta10, result5; srand ( ( unsigned )time (null ) ); for ( inti = 0; i 10; i + ) a i = rand() % 10; /intnstartpos = 0; for ( i = 0; i 5; i + ) result i = findmax( a, nstartpos , i +6 ); intfindmax( inta, int &nstartpos , intnendpos ) intmaxvalue =
11、 -1; for ( inti = nstartpos ; i maxvalue ) c 程序设计试卷 page 13 of 50 maxvalue = a i ; nstartpos = i ; a nstartpos = -1; returnmaxvalue; 一. 选择题1、c 2 、b 3、d 4 、c 5 、a 6、c 7 、d 8 、a 9、d 10 、a 二、写出下列程序的运行结果1、38456 24956 2、ga 3、16 4、25 10 25 10 5、67,d三、填空1、int sum = 0 i (b)?( a):(b) void main( ) int i=10, j
12、=15; printf(“%d n”,10*m(i, j); 12. 已知枚举类型colort 定义如下: typedef enum black=1, white, yellow, blue=5, brown, green colort; 则 white, yellow和 green 的内部编码分别为、和。13. 内存泄露指的是。14c语言的程序至少包含一个函数,该函数的名字为。15定义数组 int a57, 则 aij中 i 的正确范围值为,该数组共占字节。16. 有如下语句:char *name; name = (char *) malloc(200 * sizeof(char); 那么,
13、 name所指的空间分配在内存中。17. 结构体变量root 包含三部分。其中,sp 是指向字符串的指针,next 是指向该结构体的指针, data 用于存放整数。请填空完成此结构体变量的定义。c 程序设计试卷 page 16 of 50 struct list char *sp; ; ; root; 18. 已知typedef struct int x; char *y; node; node tab2=1,”ab”, 2,”cd” ; node *p=tab; 则表达式 *p-y的结果是,表达式 * (+p)-y 的结果是。二、读程序,写结果(每题5 分,共 35 分)1long f(in
14、t n) static x = 1; c 程序设计试卷 page 17 of 50 if (n = 0) return (1); else x = x * n; return(x); void main() printf(“%d ”, f(0) + f(1) + f(2) + f(3) + f(4); 2 void main() int n = 0; while (n+ 0) function(&b1, size - 1);printf(%d ,b0); c 程序设计试卷 page 18 of 50 void main() static int a5=10,20,30,40,50 ;f
15、unction(a,5); 4float f(int n, int x) if (n = 0) return (1); else if (n = 1) return (x); else return (2 * n - 1) * x * f(n-1, x) - (n - 1) * f(n - 2, x) / n); void main() printf(“%f”, f(4, 4); 5void main() char a = apple; magic(a); printf(%sn, a); void magic(char *s) c 程序设计试卷 page 19 of 50 while (*s)
16、 (*s)+; s+; 6. void main() int a2020, i, j, k, n = 5; k = 1; for (i = 0; i n; i+) for (j = 0; j = i; j+) ai - jj = k; +k; for (i = 1; i n ; i+) for (j = i; j n; j+) an j + i - 1j = k; k+; for (i = 0;i n; i+) printf(n); for (j = 0; j key) return ; else return ; 3假定在 c程序中有如下说明:int scorenum_student; 要求
17、将 score 数组中所有分数打印出来, 并打印总分,打印格式如下( 注意对齐方式) :89 99 100 70 60 50 total: 468 程序代码如下 ,请填完整。void main() c 程序设计试卷 page 23 of 50 int i; int total; total = 0; for ( i = 0; ; i+ ) printf( ); total+= ; printf ( ); 四、编程题( 20 分)1写一个非递归函数digits (int n)返回一个整数n 的位数。如digits(128) 返回 3; digits(60026) 返回 5。( 5 分)2写一个递
18、归函数digits (int n)返回一个整数n 的位数。( 5 分)3编制一个程序,实现计算器的功能(仅包括单个的、),使得在命令行下可以通过如下形式执行该程序:calc 3 + 5 calc 12 30 其中, calc 为该程序形成的可执行文件的文件名。(10 分)一、填空(每空 1 分,共 25 分)1. 编写 c语言源程序并上机运行的一般过程为编辑、编译、链接和执行。其中,编辑的作用是输入或修改源程序,编译的作用是将源代码转换成目标代c 程序设计试卷 page 24 of 50 码,链接的作用是将此目标代码与库函数及其他模块的目标代码链接起来。2.c 语言的标识符只能由字母、数字和下
19、划线组成,且第一个字符必须为字母或下划线。3. 能将字符类型的变量ch 的值从小写转换为对应的大写字母的表达式是ch a+a。4. 语句 printf(“”); 的输出结果为 c+ program 。5. 设 char *s=”natabc”; 则指针变量 s 指向的字符串占 7 字节。6. 设 int a=12; 则 a+=a-=a*a 的值为 -264 。7. 为了实现下列图示的指针变量指向数据对象的关系,可以使用一条数据定义语句,这条数据定义语句是_int x, *p1=&x, *p2=&p1_。8. 设有定义“ int a3 4, *p=a1;”, 则指针变量p 指向的
20、元素是 a00 _ 。9. 若用一维数组名作为函数调用的实参,传递给形参的是第一个数组元素的地址。10. 在 c语言中,当一个表达式的值为逻辑“真”时,该表达式的值一定是非 0 。11. 执行下列程序后的输出结果是 10 。#define m (a, b) (a)(b)?( a):(b) 整型变量 x 指针变量 pl 指针变量 p2 c 程序设计试卷 page 25 of 50 main( ) int i=10, j=15; printf(“%dn”,10*m(i, j); 12. 已知枚举类型colort 定义如下: typedef enum black=1, white, yellow,
21、blue=5, brown, green colort; 则 white, yellow和 green 的内部编码分别为 2 、 3 和 7 。13. 内存泄露指的是动态申请的内存没有释放。14c语言的程序至少包含一个函数,该函数的名字为 main 。15定义数组 int a57, 则 aij中 i 的正确范围值为 0-4 ,该数组共占 35*sizeof(int) 字节。16. 有如下语句:char *name; name = (char *) malloc(200 * sizeof(char); 那么, name所指的空间分配在堆内存中。17. 结构体变量root 包含三部分。其中,sp
22、是指向字符串的指针,next 是指向该结构体的指针, data 用于存放整数。请填空完成此结构体变量的定义。struct list c 程序设计试卷 page 26 of 50 char *sp; int data; ; struct list *next ; root; 18. 已知typedef struct int x; char *y; node; node tab2=1,”ab”, 2,”cd” ; node *p=tab; 则表达式 *p-y的结果是a,表达式 * (+p)-y 的结果是c。二、读程序,写结果(每题5 分,共 35 分)1long f(int n) static x
23、 = 1; c 程序设计试卷 page 27 of 50 if (n = 0) return (1); else x = x * n; return(x); main() printf(“%d ”, f(0) + f(1) + f(2) + f(3) + f(4); 答案: 34 3main() int n = 0; while (n+ 0) function(&b1, size - 1);printf(%dn ,b0); main() c 程序设计试卷 page 28 of 50 static int a5=10,20,30,40,50;function(a ,5); 答案:50 4
24、0 30 20 10 4float f(int n, int x) if (n = 0) return (1); else if (n = 1) return (x); else return (2 * n - 1) * x * f(n-1, x) - (n - 1) * f(n - 2, x) / n); main() printf(“%f”, f(4, 4); 答案: 1060.375 5main() char a = apple; magic(a); printf(%sn, a); void magic(char *s) while (*s) (*s)+; s+; 答案: bqqmf 6
25、. main() int a2020, i, j, k, n = 5; c 程序设计试卷 page 29 of 50 k = 1; for (i = 0; i n; i+) for (j = 0; j = i; j+) ai - jj = k; +k; for (i = 1; i n ; i+) for (j = i; j n; j+) an j + i - 1j = k; k+; for (i = 0;i n; i+) printf(n); for (j = 0; j = 0 & si high ) c 程序设计试卷 page 32 of 50 return -1; mid = (l
26、ow + high) / 2; if (arraymid = key) return mid ; else if (arraymid key) return binarysearch(array, low, mid-1, key) ; else return binarysearch(array, mid+1, high, key) ; 3假定在 c 程序中有如下说明:int scorenum_student; 要求将 score 数组中所有分数打印出来, 并打印总分,打印格式如下(注意对齐方式 ):89 99 100 70 60 50 total: 468 c 程序设计试卷 page 33
27、of 50 程序代码如下 ,请填完整。main() int i; int total; total = 0; for ( i = 0; i 0); bint s=100; while (s) -s; cint i; for (i=1; i=100; i+); dint i=1; while (1) +i; 4在 c语言中,当一个表达式的值为逻辑“真”时,该表达式的值一定是。a t b. true c. 非 0 数值 d.数值 1 5. 以下哪一个不是结构化程序设计的基本结构。a顺序结构 b.细化结构 c.选择结构 d.循环结构6. 设有定义语句“int x =1,3,5,7,9,11,13,
28、*p=x;”,则不能正确引用数组x的合法元素的表达式是。 a. *(p-) b. *(-p) c. *(p+) d. *(+p) 7. 下列符号串中,合法的十进制整形常量是。a.09876 b.0 x9876 c. 9.876*e4 d. 9876 8. 设 x,y 均为 float型的变量,则以下不合法的赋值语句是。 a. +x; b. y=(x%2)/10; c. x*=y+8; d. x=y=0; 9下面四个选项中,均不合法的用户标识符的选项是。 a. a b. float c. b-a d. _123 p_0 1a0 goto temp do _a int int c 程序设计试卷 p
29、age 38 of 50 10执行了下面赋值语句后,x 的值是?int i; float x; x = i = 7.8; a. 7 b. 8 c. 7.0 d. 7.8 e. 8.0 11下面的代码的返回值是?int j=2, k=3; return (jlength = 3; rect-breadth = 5; b. rect.length = 3; rect.breadth = 5; c. rect = 3, 5 ; d. rect length=3; breadth=5 ; c 程序设计试卷 page 39 of 50 d.上面四个答案都正确14下面的代码打印出行“hello ”?int
30、 j, k; for (j=1; j=5; j+) for (k=1; k=j; +k) printf(hellon); a. 5 b. 9 c. 10 d. 15 e. 25 15已知: int b, *p= &b; 则下列函数调用中错误的是_ 。a. scanf(“ %d” , &b ); b. printf(“ %d” , p );c. scanf(“ %d” , p ); d. printf(“ %d” , b );16给定如下所示的六个整型数,用气泡排序法按递增次序进行排序,第一次起泡后六个数的排列次序应为:6, 2, 9, 5, 1, 8 a. 9, 8, 6, 5
31、, 2, 1 b. 1, 2, 5, 6, 8, 9 c. 2, 5, 6, 1, 8, 9 d. 2, 6, 5, 1, 8, 9 e. 2, 6, 5, 9, 1, 8 17下列语句中的能将字符类型的变量ch 的值从小写转换为对应的大写字母?a. ch += a;b. ch += a;c 程序设计试卷 page 40 of 50 c. ch = (ch a) + a;d. ch = (ch a) + a; e. ch = a a; 四写出下列代码的输出结果(35 分)1i nt a3 = 2, 7, 5 ; int *p; p = a; printf(%d %dn, *p, +(*p);
32、2main() char a = apple; magic(a); printf(%sn, a); void magic(char *s) while (*s) (*s)+; s+; 3f(30) 的返回值是多少 ? int f(int n) if (n=1) return 1; else return n*f(n-1); c 程序设计试卷 page 41 of 50 4f or (k=0; k2; +k); for (m=0; m0; n/=100) i += n%100; printf(%dn, i); 6long f(n) int n; static x=1; if (n=0) retu
33、rn (1); else x=x*n; return(x); void main() printf(“ %d” ,f(0)+f(1)+f(2)+f(3)+f(4); 7.main() int n=0; while (n+=4); printf(“n=%d ”,n); 五程序填空( 10 分)1函数 delnum 的功能是删除字符串s 中的数字,请填空。c 程序设计试卷 page 42 of 50 delnum (char *s) int i, j; for (i=0, j=0;si!= 0 ; +i) if ( ) sj=si; j+; ; 2下面程序的功能是从三个红球、五个白球、六个黑球中任
34、意取出八个球,且其中必须有白球,输出所有可能的方案。 #include “ stdio.h”void main() int a,b,c; printf(“ n 红白黑n ” ); for (a=0;a=3;a+) for ( ;b0); bint s=100; while (s) -s; cint i; for (i=1; i=100; i+); dint i=1; while (1) +i; 4在 c语言中,当一个表达式的值为逻辑“真”时,该表达式的值一定是 c。a t b。 true c 。 非 0 数值 d 。数值 1 5. 以下哪一个不是结构化程序设计的基本结构b。 a顺序结构 b 。
35、细化结构 c 。选择结构 d 。 循环结构6. 设有定义语句“int x =1,3,5,7,9,11,13, *p=x;”,则不能正确引用数组x的合法元素的表达式是b。 a. *(p-) b. *(-p) c. *(p+) d. *(+p) c 程序设计试卷 page 45 of 50 7. 下列符号串中,合法的十进制整形常量是d。a.09876 b.0 x9876 c. 9.876*e4 d. 9876 8. 设 x,y 均为 float型的变量,则以下不合法的赋值语句是b。 a. +x; b. y=(x%2)/10; c. x*=y+8; d. x=y=0; 9下面四个选项中,均不合法的用
36、户标识符的选项是 c 。 a. a b. float c. b-a d. _123 p_0 1a0 goto temp do _a int int 10执行了下面赋值语句后,x 的值是 c ?int i; float x; x = i = 7.8; a. 7 b. 8 c. 7.0 d. 7.8 e. 8.0 11下面的代码的返回值是 c ?int j=2, k=3; return (jlength = 3; rect-breadth = 5; b. rect.length = 3; rect.breadth = 5; c. rect = 3, 5 ; d. rect length=3; br
37、eadth=5 ; f.上面四个答案都正确14下面的代码打印出 d 行“hello ”?int j, k; for (j=1; j=5; j+) for (k=1; k=j; +k) printf(hellon); a. 5 b. 9 c. 10 d. 15 e. 25 15已知: int b, *p= &b; 则下列函数调用中错误的是_b_ 。a. scanf(“ %d” , &b ); b. printf(“ %d” , p );c. scanf(“ %d” , p ); d. printf(“ %d” , b );c 程序设计试卷 page 47 of 50 16给定如下所示的六个整型数,用气泡排序法按递增
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上半年佛山市禅城区南庄镇政府招考编外人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年人民日报社招聘应届高校毕业生85人笔试易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年云南红河州开远市事业单位考试调动28人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年云南曲靖市麒麟区教育体育局所属事业单位招聘教师140人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年丽水松阳县事业单位招考(赴武汉)易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年中铁十五局集团公司总部法律合规部工作人员招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年中电科发展规划研究院限公司招聘38人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年中国集邮限公司校园招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年中国船舶重工集团公司第七二五研究所厦门材料研究院委托招聘司机易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年中国移动湖南分公司校园招聘易考易错模拟试题(共500题)试卷后附参考答案
- 湖北省2025届高三下学期2月调考语文试题及参考答案
- 过敏性休克完整版本
- 2024年益阳医学高等专科学校单招职业适应性测试题库及答案解析
- 楼顶发光字采购安装投标方案
- 智能垃圾桶系统的设计论文
- 质量管理体系过程识别矩阵图及与条款对照表
- 北碚区幼儿园
- 2021年度锚索张拉机具及锚杆拉力计技术规格书
- 2022年人力资源管理师课程表
- 梦中的婚礼钢琴简谱(共6页)
- 3DMAX教案_免费
评论
0/150
提交评论