《C语言程序设计》考试模拟练习题【附答案】

上传人:壹****1 文档编号:567676846 上传时间:2024-07-22 格式:PDF 页数:60 大小:378.89KB
返回 下载 相关 举报
《C语言程序设计》考试模拟练习题【附答案】_第1页
第1页 / 共60页
《C语言程序设计》考试模拟练习题【附答案】_第2页
第2页 / 共60页
《C语言程序设计》考试模拟练习题【附答案】_第3页
第3页 / 共60页
《C语言程序设计》考试模拟练习题【附答案】_第4页
第4页 / 共60页
《C语言程序设计》考试模拟练习题【附答案】_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《《C语言程序设计》考试模拟练习题【附答案】》由会员分享,可在线阅读,更多相关《《C语言程序设计》考试模拟练习题【附答案】(60页珍藏版)》请在金锄头文库上搜索。

1、C 语言程序设计考试模拟练习题【附答案】选择题1、若定义:int x=2;y=3;float i;则以下符合 C 语言语法的表达式是( )A、x=x*3=2 B、x=(y=1) C、i=float(x) D、i%(-3)B2、若有定义:int a=5,b=2,c=1;则表达式 a-b0C、str1=str2; D、表达式 strlen(str1)的值为 6B16、关于 C 语言函数的描述中,正确的是()A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数的调用都可以嵌套D、函数的定义和函数的调用都不可以嵌套B17、设有如下定义 typ

2、edef int *INTEGER:INTEGER p,*q:则()是正确的表述A、P 是 int 型变量 B、q 是基类型为 int 的指针变量 C、p 是基类型为 int 的指针变量 D、程序中可用 INTEGER 代替 int 类型名C18、若有定义:int m=5,n=3 则表达式(m+1,n+1,(-m),=(n-))的值是()A、6 B、7 C、8 D、919、已知 char a;使用 scanf()函数输入一个字符给变量 a ,不正确的函数调用是()A、scanf(“%d”,&a) B、scanf(“%lf”,&a) C、scanf(“%c”,&a) D、scanf(“%u”,&

3、a)B20、C 语言对于计嵌套语句的规定:else 总是与()配对A、第一个 if B、之前最近且尚未配对 C、缩进位置相同的 if D 之前最近的 ifB21、对于基类型相同的两个指针变量之间,不能进行的运算是() A、2;后 C 的值为()A、5 B、7 C、80 D、11233、结构化程序设计的三种基本语句是()A、函数结构 分支结构 判断结构B、函数结构 嵌套结构 平行结构C、顺序结构 分支结构 循环结构D、分支结构 循环结构 嵌套结构C34、以下()是不正确的字符串常量A、 abc B、 ”1212” C、 ”0” D、 “ ”35、已知 double a=5.2;则正确的赋值表达式

4、是()A、a+=a-=(a=4)*(a=3) B、a=a*3 C、a%3 D、a=double(-3)B36、以下的计语句中,x 的值一定被重新赋值的是()A、if(x=y) x+=y; B、if(xy&x!=y);x+=y; C、if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y) D、if(xy&x!=y) x+=y; C、if(x!=y) scanf(“%d”,&x); else scanf(”%d”,%y) D、if(x B、| C、& D、+43、若有定义:int a,b;double x,则以下不符合 C 语言的表达是()A、x%(-3) B、a+

5、=-2 C、a=b=2 D、x=a+b44、关于 C 语言的源程序的叙述中,错误的是()A、C 语言的源程序由函数构成 B、main 函数可以书写在自定义函数之后C、必须包含有输入语句 D、一行可以书写多个语句45、设有以下定义语句:struct student int num;char name10;float score;wang,zhang;则不正确的叙述是()A、struct 是结构体类型的关键字 B、zhang 是结构体变量名 C、wang 是结构体类型名 D、num,name,score 都是结构体类型student 的成员名46、若有定义:int a33;则表达式&a21-a 的

6、值为()A、7 B、8 C、6 D、947、下列数组定义中,正确的是()A、int a10 B、int n=10 a10 C、int N=10;int aN D、int n;scanf(“%d”,&n);int an48、若有定义 int a23;则对数组元素的非法应用是()A、a01/2 B、a11 C、a4-40 D、a0349、若有:int a=2;则 a=ctrcmp(“miss”,”miss”)运行后 a 的值是()A、1 B、0 C、-1 D、 250、若 struct teacherint num;char name10;char sex;int age;float score;

7、teacher1;则变量 teacher1 所占用的内存字节是()A、B、C、D、51、以下()是正确的变量名 A、a.bee B、-p11 C、int D、p_1152、下面叙述中, ()不是结构化程序设计中的三种基本结构之一A、数据结构 B、选择结构 C、循环结构 D、顺序结构53、若有定义:int a=1,b=2,c=3,d=4,x=5,y=6;则表达式(x=ab)&(y=cb)的值为()A、0 B、1 C、5 D、654、以下()是正确变量名A、5f B、if C、f.5 D、_f555、char 型变量存放的是()A、ASC码值 B、字符本身 C、十进制代码值 D、十六进制代码值56

8、、putchar()函数的功能是向终端输出 ()A、多个字符 B、一个字符 C、一个实型变量值 D、一个整型变量表达式57、若有定义:int x=3,y=4,z=5,则值为 0 的表达式是() A、 x&y B、x=y C、x|y=z&y-z D、!(xy)&!z|1)58、以下程序结束后屏幕输出(B) A、4 B、5 C、6 D、759、若有定义:int x,a;则语句 x=(a=3,a+1):运行后,x、a 的值依次为(C) A、3,3 B、4,4 C、4,3 D、3,460、若有定义:int a,b;则表达式(a=2,b=5,a*2,b+,a+b)的值是(D) A、7 B、8 C、9 D

9、、1061、已有如下定义和输入语句 Int a;char c1,c2; Scanf(“%d%c%c,”&a,&c1,&c2); 若要求 a、c1、c2 的值分别是 10、A 和 B,正确的数据输入是(B) A、10AB B、10 A B C、10A B D、10 AB62、若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y 的值是(A) A、3.5 B、3.0 C、2.5 D、2.063、以下程序运行后,循环体运行的次数为(B)Int i=10,x;For(i=0;i10;i+) x=x+I; A、10 B、0

10、 C、1 D、无限64、已知 int a10;则对 a 数组元素引用不正确的是(A) A、a10 B、a3+5 C、a10-10 D、a565、设有以下变量定义:char str1 =”string”,str28,*str3;*str4=”string”; A、strcpy(str1,”china”) B、str2=”chinta” C、strcpy(*str3,”china”) D、strcpy(str40,”china”)66、设有以下语句,则(D)是对 a 数组元素的不正确引用,其中 0=i0) j+) /*语句 3*/A、语句 2 错误,其他正确 B、语句 1 正确,其他错误C、语句

11、3 正确,其他错误 D、语句错误,其他正确68、以下叙述不正确的是(D)A、C 程序的执行总是从 main 函数开始、B、一个 C 源程序必须包含一个 main 函数C、C 语言程序的基本组成单位是函数D、在编译 C 程序源程序时,可发现注释中的拼写69、以下(B)是错误的整形常量A、-0xcdf B、018 C、0xe D、01170、语句 a=(3/4)+3%2;运行后,a 的值为(B)A、0 B、1 C、2 D、371、设整形变量 a 为 5,使 b 不为 2 的表达式是(C)A、b=(+a)/3 B、b=6-(-a) C、b=a%2 D、b=a/272、已知如下定义和输入语句:Int

12、a,b;Scanf(“%d,%d”,&a,&b);若要求 a、b 的值分别为 10 和 20,正确饿数据输入是(A)A、10 20 B、10,20 C、a=10,b=20 D、10;2073、若有定义,int x=3,y=4;则表达式!x|y 的值为(A)A、1 B、0 C、3 D、474、已知 char a=R;则正确的赋值表达式是(D)A、a=(a+)%4 B、a+2=3 C、a+=256-c D、a=07875、设有整形变量 x,下述语句(B)不会出现死循环A、for(;x+=1) B、for(;(x=gether()!=ln;)C、while(l) x+; D、for(x=10;x-)

13、76、以下能对一维数组 a 进行正确初始化的语句是(D)A、int a5=(0,0,0,0,0); B、int as=0C、int a5=1,2,3,4,5,6,7 D、int a =077、若有定义:int a 3=1,2,3,4,5,6,7,8,9;则表达式 sizeof(a)/sizeof(a0)的值为(A)A、3 B、4 C、5 D、978、以下叙述中,正确的是(A)A、宏展开不占用运行时间,只占用编译时间B、预编译处理命令行必须以分号结束C、一个源程序只能有一个预编译处理命令行D、使用带参数的宏定义时,应该说明每个参数的数据类型79、在 16 位编译系统上,若有定义 int a =1

14、0,20,30,*p=&a;当执行 p+;后下列叙述错误的是(A)A、p 向高地址移了一个字节B、p 与 a+1 等价C、语句 printf(“%d”,p);输出 20D、p 指向数组元素 a180、以下 C 语言共用体类型数据的描述中,不正确的是(C)A、共用体变量占的内存大小等于所需内在最大的成员所占的内存B、共用体类型可以出现在结构体类型定义中C、在定义共用体变量的同时允许对另一个成员的值进行初始化D、同一共用体中各成员的首地址不相同81、若有以下类型说明,叙述正确的是(A)Typedef structint sum; Char *name Int score;STU,*PSTUA、ST

15、U 是变量名 B、PSTU 是变量名C、PSTU 是指向结构体类型 STU 的指针类型名D、类型说明语句有错误82、以下叙述正确的是(D)A、C 语言中的文件是流式文件,因此只能顺序存取数据B、打开一个已存在的文件进行了写操作后,原有文件中的全部数据必定被覆盖C、在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第一个数据D、当对文件的写操作完成之后,必须将它关闭,否则可能导致数据丢失83、在 C 语言源程序中,以下叙述正确的是(C)A、main 函数必须位于文件的开头B、每行只能写一条语句C、程序中的每一语句可以写成行的形式D、每个语句的最后必须有点号84、下面叙述正确

16、的是(B)A、2/3 与 2.0/3.0 等价 B、(int)2.0/3 月 2/3 等价C、+5 与 6 等价 D、 A与”A”等价85、getchar()函数的功能是从终端输入(D)A、一个整形数值 B、一个实型变量值C、多个字符 D、一个字符86、若有定义:int I=7,j=8;则表达式 ij|ij 的值是(A)A、1 B、变量 i 的值 C、0 D、变量 j 的值87、在 C 语言中 while 循环和 do-while 循环的主要区别是(B)A、do-while 循环体内可以使用 break 语句,while 循环内不能使用 break 语句B、do-while 的循环至少无条件执

17、行一次,while 的循环体不是C、do-while 循环体内可以使用 continue 语句,while 循环体内不能使用continue 语句D、while 的循环体至少无条件执行一次,do-while 的循环体不是88、以下的叙述中不正确的是(C)A、宏展开不占用运行时间,只占用编译时间B、宏名无类型C、宏名必须用大写字母表示D、预处理命令都必须以#号开始89、以下程序段运行后*(+p)的值为(C) Char a=”work” Char *p;P=a;A、 w B、存放w的地址 C、 0 D、存放0的地址90、设有如下定义语句:Union u-typeint I; Double x; F

18、loat f; Struct str-typechar str100; Union u_type u2;则语句“printf(“%d”,sizeof(struct str-type);”的输出结果是(B)A、100 B、116 C、120 D、20091、标准函数 fgets(s,n,f)的功能是(D)A、从文件 f 中读取长度为 n 的字符串存入指针 s 所指的内存B、从文件 f 中读取长度不超过 n-1 的字符串存入指针 s 所指的内存C、从文件 f 中读取几个字符存入指针 s 所指的内存D、从文件 f 中读取长度为 n-1 的字符串存入指针 s 所指的内存92、若有说明语句:hat c=

19、95;则变量 c 包含(A)个字符、A、1 B、2 C、3 D、语法错误93、若有定义:int i,j;则表达式(i=2,j=5,i+,j+)的值是(B)A、7 B、8 C、9 D、1094、已知 int a;使用 scanf()函数输入一个整数给变量 a,正确的函数调用是(B)Ascanf(“%d”,a); Bscanf(“%d”,&a);Cscanf(“A”,&a); Dscanf(“%df”,&a)95以下程序运行结果是(D) Void main( ) int n=5;if(n+7=6)printf( “%dn”,n);else printf(“%dn”,n);A4 B5 C6 D7 9

20、6对于整形变量 x 和 y, 语句For(x=0y=0;(y!=123) & (x4);x+) y+;中的“y+;”被执行(A)A4 次 B0 次 C123 次 D3 次97下列数组定义中,正确的是(A)Aint a5=0 Bint a=0 1 2 Cint a5=0 Dint a98下列数组定义中,正确的是(B)Aint a23=1,2,3,4,5,6,7;Bint a =1,2,3,4,5,6,7,8,9;Cint a2 =1,2,3,4,5,6;Dint a 4=6;99对于 C 语言源程序,以下叙述错误的是(C)A可以有空语句B函数之间是平等的,在一个函数内不能定义其它函数C程序调试时

21、如果没有提示错误,就能得到正确的结果D注释可以出现在语句的前面100若有定义:int a34=1,2,0,1,2,3;则 a11的值为(A)A0 B1,2 C1 D3101若希望当 a 的值为奇数时,表达式的值为“真”,a 的值为偶数时,表达式的值为“假”,则不能满足要求的表达式是(C)Aa%2=1 B(a%2=0) C!(a%2) Da%2102若有定义:int a3=0,1,2;则 a1 的值为(B)A0 B1 C2 D3 103在 16 位编译系统上,若有定义 int a=10,20,30,*p=&a;当执行 p+后下列叙述错误的是(A)Ap 向高地址移了一个字节 Bp 与 p+1 等价

22、C语句 printf(“%d”,*p);输出 20 Dp 指向数组元素 a1104C 语言的的函数体由(B)括起来A() B C D/*/105下面叙述正确的是(A)A强制类型转换运算的优先级高于算术运算B若 a 和 b 是整形变量, (a+b)+是合法的CA*B是合法的D“A”+“B”是合法的106下面叙述中, (A)不是结构程序设计的三种基本结构的共同特点A先判断后执行 B单入口,单出口 C程序中没有执行布道的语句 D无死循环107以下程序运行后变量 a 的值为(D)int x=6,y=5;int a;A=(-x=y+)?x:y+1A0 B1 C6 D5108以下程序运行后变量 n 的值为

23、(D)int i=1,n=1;for(;i3;i+)continue;n=n+1;A4 B3 C2 D1109若有定义:int a5=1,2,3,4,5;则语句 a1=a3+a2+2-a3-1;运行后 a1的值为(A)A6 B5 C1 D2110设有如下程序段:int a33=1,0,2,1,0,2,1,0,1,I,j,s=0;for(i=0;i3;i+)for(j=0;jI;j+)s=s+aij;则执行程序段后,s 的值是(C)A0 B1 C2 D3111如下 fun 函数的类型是(C)fun(float x)double y;int z;y=x*x;z=(int)yreturn(z);Av

24、oid Bdouble Cint Dfloat 112.以下叙述中,正确的是(B) A.“# define PRICE=30”定义了 30 等价符号常量 PRICE。 B.预编译处理命令行都必须以“#”开头。 C.宏名只能是含大写字母和数字字符。 D.在程序的一行上可以书写几个有效的宏定义。113.以下程序段运行后 X 的值为(B) int a=1,2,3,b=4,5,6;int* p,* q; int I,x; p=a;q=b; for(i=0;inext;Free(p) p=q; (A) A.删除整个单向链表 B.删除单向链表中的一个结 C.显示单向链表中的所有数据 D.创建单向链表116

25、.对枚举类型进行定义,不正确的是(A) A. enum b1,2,3; B. enum aA,B,C; C. enum cD=3,E,F; D. enum dx=0,y=5,z=9;运行结果题1. 以下程序运行结果 (C)void main()int sum=0,iten=0;While(item=6) break;Printf(“%dn”,sum);A. 10 B. 15 C. 6 D. 72.下面程序的输出结果为(B) #include Void main() ennm Wwwkday sum=7,mon=1,tue,thu.fri,sat;Ennm weekday day=sat;Pri

26、ntf(“%dn”,day);A. 7 B. 6 C. 5 D.43.下面程序运行结果是(A) Int i=0,a=1,2,3,4,5; Do ai+=10; While(a+i2); For(i=0;i5;i+) Printf(“%d”,ai); A. 11 2 3 4 5 B.1 2 3 4 5 C.11 12 13 14 15 D.11 12 3 4 54.若有定义:int i=0,x=0;int a33=1,2,3,4,5,6,7,8,9; 则以下程序段运行后 x 的值为(C) For(;i3;i+) x+=a12-i; A. 0 B. 12 C. 15 D. 185.以下程序运行后*

27、(p+3)的值为(A) Char a=”good”; char *p; p=a; A. d B. 0 C.存放d的地址 D. 06.设有如下变量定义:char aa3=a,b,c,d,e,f; char (*p); A. a B. b C. c D. d7.以下程序的运行结果 (D) #include Union utypeint I;float fu2; void main()printf(“sizef(u):%dn”,sizeof(u); A. 2 B. 4 C. 6 D. 88.设有如下函数定义: Int fun(char*str) char *p;If(p!=0) p+1;Return

28、 (p-str);Printf(“%dn”,fun(“student”); 则以下语句执行后的输出结果是(A) A. 7 B. 8 C. 9 D. 109.若有定义:int a=1,b=2,c=3;则执行以下 程序后 a,b,c 的值分别为(D) If(ab=c=a,a=b,b=c;) A.a=1,b=2,c=3 B.a=2,b=3,c=1; C.a=2,b=3,c=3; D.a=1,b=1,c=1;10.有如下定义:char str6=a,b,0,d,e,f;则语句 printf(“%s”,str);的输出结果为(D) A. ab B.abdef C.ab0 D.ab11.若有定义:int

29、x=1234,y=123,z=12;则语句 printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D) A.123412312 B.1234123412341234131231231212 C.1234+1234+1234 D.1234+123+1212.以下程序的运行结果是(B) Void main()int sum=0,item=0;While(item5)item+; sum+=item;If(sum=5) break;Printf(“%dn”,sum); A. 10 B. 15 C. 5 D.613.下面程序段的运行结果是(D)Int i=0,a=3,4,5,4,

30、3; Do ai+; while(a+i5); For(i=0;i5;i+) Printf(“%d”,ai); A. 45654 B.34543 C.45554 D.4554314.以下程序的屏幕输出为(B)#include Void f (int i) int a=2;a=i+Printf(“%d”,a);Main()int a=1, c=3;F(c);a=c+;printf(“%d”,a); A.4,3 B. 3,3 C. 4,5 D. 3,515.下面程序的输出结果是(C)#include#define ONE 1#define TWO ONE+1#define THREE TWO+1

31、Void main() printf(“%dn”,THREE-ONE); A.产生错误 B. 1 C. 2 D. 316.以下程序运行后 x 的值为(D) Int a9=1,2,3,4,5,6,7,8,9; Int *p,*q; Int I,x; P=&a0; Q=&a8; For(i=0;i3;i+) If(*(p+i)=*(q-i) X=*(p+i)*2; A. 2 B. 4 C. 6 D.不确定17.下面程序段的运行结果是() Int a=5,b=6;printf(“%d”,a/b); A. 5 B. 6 C. 7 D.818.若有以下函数定义: Int fun()static int

32、k=0;return +k; 以下程序段运行后屏幕输出为(D) Int I; For(i=1;i=5;i+) Fun(); Printf(“%d”,fun(); A. 0 B. 1 C. 5 D. 619.以下程序运行结果是(A) Int fun(int array44)int j;For(j=0;j5); For(i=0;i6;i+) Printf(“%d”,ai);A. 9 7 9 5 10 5 B. 9 5 9 3 10 3 C.9 5 7 3 8 3D. 7 5 7 3 8 321.以下程序运行段运行后 x 的值为(D) Int a=1,2,3,4,5,6,7,8; Int I,x,*

33、p; X=1; P=&a2; For(i=0;i3,i+) X*=(p+i); A.不确定 B. 24 C. 120 D. 6022.以下程序运行后屏幕输出为(D) #include Int a=2,b=3; Int max(int a,int b) int c;c=ab?a:b;return (c); main() int a=4;Printf(“%d”,max(d,b); A. 2,3 B. 2 C. 3 D. 423.定义 char a=”abcdef”; char b=”xyz”;以下程序运行后输出(B)Strcpy (a,b); Printf(“%c”,a2);A. c B. z C

34、. 0 D. d24.以下程序运行后屏幕输出为(B) #include Int f(int x, int y)return(x+y);Main()int a=2,b=3,c;c=f(a,b);printf(“%d+%d=%dn”,a,b,c);A. 0 B. 2+3=5 C.2+3=0 D.3+2=525.以下程序执行时,输入 1 2 3 4 5输出为(A) #include#define N 5 Void main() int aN; intp=a;While(pa) Printf(“%s”,-p);A.5 4 3 2 1 B. 1 2 3 4 5 C.2 3 4 5 1 D.4 3 2 1

35、 526.以下程序的运行结果是(D) Void main()int a=65;char c=A;printf(“%x,%d”,a,c); A.65,a B.41,a C.65,65 D.41,6527.若有以下定义 #define MOD(x,y) x%y 则执行以下程序段后,z 的值是(D) Int z,a=15,b=100;z=MOD(b,a);A. 100 B. 15 C. 11 D. 1028.下面程序的输出结果是(A) #include#define SQR(x) (x*x)Void main() int a,b=3;a=SQR(b+2);printf(“n%d”,a);A.11 B

36、. 25 C. 不定值 D.产生错误29.以下程序的运行结果是(C) Void main()int n=e;Switch(n-)default:printf(“error”);Case a:Case b:printf(“good”);break;Case c:printf(“pase”);Case d:printf(“warn”); A.error B.good C.error good D.warn30.以下程序段运行后屏幕输出为(A) Char str80; Strcpy(str,”hello”); Printf(“%d”,strlen(str); A. 5 B. 6 C. 7 D. 83

37、1.下面程序的输出结果是(D) #includeInt global=100;Fun()int global=5;Return +global;Void main() Pritnf(“%dn”,fun();A. 100 B. 101 C. 5 D. 610.下面程序的输出结果是(A)#include Void main() int I;Char *s=”abc”;For(i=0;i3;i+)Printf(“%sn”,s+i);A.a b c B.c C.a b c D.a b c b c c a b c a b c b c a b c11.以下程序段运行后屏幕输出为(C) Char a=”ab

38、c0mis”;Printf(“5d”,strlen(a);A. 5 B. 8 C. 3 D. 412.执行以下程序段的输出结果是(B) Int a=10,*p=&a; Printf(“%d”,+*p); A. 1 0 B. 1 1 C.变量 a 的地址 D.变量 a 的地址+1 文件题1. 以下程序运行后,屏幕显示 write ok!,下列说法正确的是(D)#include Main() FILE *fp;fp=fopen(“date,txt”,”wt”);if (fp!=NULL)fpr int f(fp,”%sn”,”File write successed!n”);Fclose(fp);

39、Printf(“write ok!n”); A. 当前工作目录下存在 data.txt 文件,其中内容是”write ok!”B. Fclose(fp);语句的功能是打开文件C. 当前工作目录下一定不存在 data.txt 文件D. 当前工作目录下一定存在 data.txt 文件2. 以下程序的功能是(B)#include Main() FILE *fp;Long int n;Fp=fopen(“wj.txt”,”rb”);Fseek(fp,0,SEEK END);N=ftell(fp);Fclose(fp);Printf(“%ld”,n);A. 计算文件 wj,txt 的起始地址B. 计算文

40、件 wj,txt 的终止地址C. 计算文件 wj,txt 内容的字节数D. 将文件指针定位到文件末尾3. 以下程序执行文件名是 file.exeMain(int argc,char *argv) int i;For(i=I;iarge;i+)Printf(“%s%c”,argvi,(iargc-1?:n);在 DOS 命令篇输入:File My C Language and Programming回车,其输入结果是(A)AC Language and ProgrammingB. My C Language and ProgrammingC. My CLanguage and Programmi

41、ngD. file My C Language and Programming4.对下面程序正确的描述是(B)#include#includeVoid main FILE*in,*out; If(in=fopen(“infile.txt”,”r”)=NULL)printf(“cannot open infilen”);Exit(0);While(!feof(in) Fputc(f get(in).out);Fclose(in);Fclose(out);A. 程序实现在屏幕上显示磁盘文件 infile.txt 的内容B. 程序实现将两个磁盘文件 infile.txt 和 outfile.txt

42、的内容合二为一C. 程序实现将两个磁盘文件 infile.txt 复制到磁盘文件 outfile.txtD. 程序实现将两个磁盘文件合并在屏幕上输出5以下程序的可执行文件名为 tt.exe,若程序运行后屏幕显示:We are, 则在 Dos 提示符下输入的行名是(C)Void main (int argc,char*argv)int I;printf(“%d”,argc);For(i=1;iargc;i+)Printf(%s),argci;A.tt B.tt we C.tt we are D.tt we are happy! 链表题1 若有以下定义2 Struct link Int data;

43、 Struct link*next;*head,*p;并已建立如下图示的链表结构 Headdata next data next data null则能保留链表其他结点,而删除 P 所指向结点的程序段是(A)A. headnext=pnext;free(p);B. headnext=p;pnext=headC. free(p);headnext=p; pnext=head next;D. free(p);headnext=pnext;2.若有定义Struct node Int data Struct node*next; Void fun(struct node*head)及函数: struc

44、t node*p=head;While(p)printf(%d,pdata);P=pnext;break;则函数()的功能是(C)A.删除单向链表 B.显示单向链表的所有数据 . C.显示单向链表中的第一个数据 D.创建单向链表3若有如下定义,函数 fun 的功能是(B),其中 head 指向链表着结点整个链表结构如下图: .head.Struct nodeint data;struct node*next;int fun(struct node*head)int n=0;struct node*t=head;while(t!=NULL)n+;t=tnext;return n;A.删除链表 h

45、ead 的所有结点 B.计算链表 head 中的结点个数C.插入一个元素到链表 head 中D.创建一个链表 head11若有以下定义: struct linkint data;struct link*next;*head, *p; 并已建立如下图所示的链表结构:head. datadatadatanulldatanextdatanextdataNULL指针 P 指向如下传点:P则能够把 P 所指结点插入到链表中成为链表第 2 个结点的程序段是(C)APnext=headnext;headnext=PBheadnext=P; Pnext=headnextCP. next=head.next;h

46、ead.next=PD(*head).next=P;(*P).next=(*head).next;编程题1.打开程序 Cprog 041.c,其中的 fun()函数,使其计算:0 x0 F(x)= 输入:1232.250.113输出:f(12.000)=10.387f(32.250)=12.935f(0.113)=1.568答案:#include#includedouble f(float x)/* */float y;if(x0)datanextx0|x|+3.2sin(x)+2y=(fab(x)+3.2)/(sin(x)+2);return y;elsereturn 0;/*/void m

47、ain()float x;double y;printf(Please input a number:n);scanf(%f,&x);y=f(x);printf(f(%.3f)=%.3fn,x,y);getch(); 2.打开 Cprong032.c,完成其中的函数 fun(char*s),使得其实现统计输入字符串中空格的个数答案:#includeint fun(char*s)/* */ int n=0; while(*s!=0)if(*s=);return n;/* */void main()char str255;gets(str);printf(%dn,fun(str); 3.打开 Cp

48、rog031.c,完成其中的函数 fun1,该函数的数学表达式是: 1.2 当 x3 时 fun1(x)= 10 当 x=3 时 2x+1 当 x3 时例如:fun1(0.76)=1.200 fun1(3.00)=10.000 fun1(3.76)=8.520答案:#include#includedouble fun1(double x)/* */if(x3) return 1.2;else if(x=3) return 10;else return 2*x+1;/* */void main()clrscr();printf(fun1(0.76)=%8.3lfn,fun1(0.76);prin

49、tf(fun1(3.00)=%8.3lfn,fun1(3.00);printf(fun1(3.76)=%8.3lfn,fun1(3.76);4.Cprog 021.c,完成其中的函数 fun1,该函数的数字表达式是:fun1(x)=答案:#include#includedouble fun1/* */double y;y=(exp(x)+fabs(x-6)/(x+1.3);return y;void main()clrscr();printf(fun1(0.76)=%8.31fn,fun1(0.76);printf(fun1(3.00)=%8.3lfn,fun1(3.00);printf(fu

50、n1(3.76)=%8.3lfn,fun1(3.76);5.Cprog 022.c,完成其中函数 fun2char a,char b,char c,实现:将三个字符串a,b,c 从小到大排序后输出。注意:字符串比较函数为 strcmpchar*,char*,字符串复制函数为 strcpychar*,char*.答案:#include#include+|x-6|x+1.3xe e#include#includevoid fun2(char a,char b,char c)/* */ char t10; if(strcmp(a,b)0) strcpy(t,a); strcpy(a,b); strc

51、py(b,t);if(strcmp(a,c) 0) strcpy(t,a); strcpy(a,c); strcpy(c,t);if(strcmp(b,c)0)strcpy(t,b);strcpy(c,b);strcpy(b,t);/* */void main()char str115=Fuzhou,str215=Fujian,str315=China;clrscr();fun2(str1,str2,str3);printf(The ordered strings is:%s,%s,%sn,str1,str2,str3);gerch();6.打开程序 Cprog 061.c,完成其中的 f()

52、函数,使其计算: |x|300 3xlg(|x|+2.6) f(x)= -1 |x|300 如:输入:0.8,输出 f(0.80)=0.96 输入:4.5,输出 f(4.50)=107.05输入:725,输出 f(725.00)=-1.00答案:#include#includedouble f(float x)/* */double y;if(fabs(x)300) return y = pow(x,3)/log10(fabs(x)+2.6);else return -1;/* */void main() float x; double y; printf(Please input a num

53、ber:n); scanf(%f,&x); y=f(x); printf(f(%0.2f)=%0.2fn,x,y); getch() ; 7.打开程序 Cprog 062.c,完成其中的 fun()函数,使其实现四则运算的功能, 如:输入:3.2 2.1 输出:3.20+2.10=5.30 3.20-2.10=1.10 3.20*2.10=6.72 3.20/2.10=1.52答案:#include#includefloat fun(float a,char flag,float b)/* */ switch(flag) case+:return a+b; break;case-: retur

54、n a-b; break;case*: return a*b; break; case/: return a/b; break; default: break;/* */void main()float a,b;printf(Please input two numbers:n);scanf(%f%f,&a,&b);printf(%.2f+%.2f=%.2fn,a,b,fun(a,+,b);printf(%.2f+%.2f=%.2fn,a,b,fun(a-,b);printf(%.2f+%.2f=%.2fn,a,b,fun(a, *,b);printf(%.2f+%.2f=%.2fn,a,b,

55、fun(a,/,b);getch();8.打开程序 cprog052.c 完成其中的 fun()函数,使其判断一个矩阵是否为对称矩阵,若矩阵对称返回 1,不对称返回 0,说明:矩阵 a 是一个二维数组,若其中的第 k 行第 j 列的元素与第 j 行第 k 列的元素相同,则称其为对称矩阵,否则为非对称矩阵。如输入:6 3 12 输入:6 9 12 3 18 8 3 18 8 12 8 7 34 8 12 输出:Yes 输出:No#include#includeint fun(int a3,int m)/* */int i,j; for(i=0;i3;i+) for(j=0;ji;j+) if(a

56、ij!=aji) return 0; return 1; /* */void main() int a33,i,j; int b; fun(a,20); for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij);b=fun(a,3);if(b=1) printf(Yesn);else printf(Non);getch();9.打开程序 Cprong042.c,完成其中的 fun()函数,是程序打印出 Fibonacci,数列的前 20 个数。该数列1,1,2,3,5,8,13的第 1,第 2 个数为 1,从第 3 个数开始每个数等于前 2 个数之和。答案:#i

57、nclude#includevoid fun(int a,int m)/* */int i;a0=1;a1=1;for(i=2;im;i+) ai=ai-1+ai-2;/* */void main() int a20,i; fun(a,20);for(i=0;i20;i+) printf(%d ,ai);printf(n);getch();10.打开程序 cprog051.c,完成其中的 fun()函数,使其计算 5.8+(x)f(x) = cos(x)+2.1 -1 ;|x|700如输入:0.4 输出:f(0.40)=0.82 输入:1.5 输出:f(1.50)=1.24 输入:7.80 输

58、出:f(780.00)=-1.00答案:#include#includedouble f(float x)/*/float y;if(fabs(x)700) y=sqrt(5.8+fabs(x)/(cos(x)+2.1); return y;else Return -1;/*/Void main() float x;double y;printf(“please input a number:n”);scanf(“%f”,&x);y=f(x);printf(“f(0.2f)=%0.2fn”,x,y);getch();11.打开考生文件夹中的 cprog012.c,完成其中的函数fun2(int

59、a,int n,int b,int c),;|x|700实现:(1) 将数组 a 中大于-20 的元素,依次存放到数组 b 中。(2) 将数组 b 中的元素按照从小到大的顺序存放到数组 c 中。(3) 函数返回数组 b 中的元素个数。答案:#include#include#include#includeint fun2(int a,int n,int b,int c) /*/int i,j,k;for(i=0;i-20) bk+=ai; for(i=0;ik-1;i+)for(j=0;jcj+1; t=cj; cj=cj+1; cj+1=t; return k;/*/void main()in

60、t n=10,i,nb;int aa10=12,-10,-31,-18,-15,50,17,15,-20,20;int bb10,cc10;/ clrscr()printf(“There are %2d elements in aa.n”,n);printf(“They are:”);for (i=0;in;i+)printf(“%6d”,aai)printf(“n”)nb=fun2(aa,n,bb,cc);printf(“Elements in bb are:”);for(i=0;inb;i+)printf(“%6d”,bbi);printf(“n”);printf(“Elements in

61、 cc are:”);for(i=0;inb;i+)printf(“%6d”,cci);printf(“n”);printf(“There are %2d elements in bb.n”,nb);12.打开考生文件夹 cprog011.c 完成其中的函数 fun1,该函数的数学表达式为:答案:#include#includedouble fun1(double x)/*/ double y; y=(1+sin(x)+exp(x)/(1+x); return y;/*/void main() clrscr(); printf(“fun1(0.76)=%8.31fn”,fun1(0.76);

62、printf(“fun1(3.00)=%8.31fn”,fun1(3.00); printf(“fun1(3.76)=%8.31fn”,fun1(3.76);改错题1程序 Cmody041.c,其功能是统计输入字符串中大小写字母的个数,如输入:abcdEFGHIJK 123 输出:4答案:#include#includemain() char str128/*/ int i;len,sum=0; /*/ gets(str1); len=strlen(str1); for(i=0;i=a&str1i=z)/*/ sum=+;printf(“%dn”,sum);getch();2程序 Cmody0

63、42.c,其功能是将从键盘一次输入的 M 个整数逆序输出。如:输入:12 4 656 83 25 35 76 29 输出:29 76 35 25 83 656 4 12答案:#include#include#define M 8main() int aM,i; printf(“Please input 8 numbers:n”); for(i=0;i=0;i-) /*/ printf(“%d”,ai); printf(“n”); getch();3.程序 Comdy012.c 中函数 fun(int n)的功能是:根据参数 n,计算大于 10 的最小 n 个能被 3 整除数之和,例如:fun(

64、8)=答案:#include#include#include#include#define m 50double fun(int n) double y=0.0; int i,j; j=0;for(i=1;1+)/*/if(i10)&(i%3=0)/*/ /*/y+=1.0/i;/*/ j+; if(j=n)break;return y;void main()clrscr();printf(fun(8)=%8.3lfn”,fun(8);4.程序 cmody031.c 的功能是:从键盘上输入两个整数,及一个运算符(+,-,*,/或%) ,进行程序相应的运算后输出运算的结果。如输入:1+2将输出:

65、1+2=3答案:#include#includevoid man()int m,n,result,flag=0;/*/char ch;/*/ clrscr(); printf(“input an expression:”); scanf(“%d%c%d”,&m,&chm&n);/*/switch(ch)/*/ case+:result=m+n;break; case-:result=m-n;break; case*:result=m*n;break; case%:result=m%n;break; case/:result=m/n; break; default:printf(“error!n

66、”);flag=1; if(!flag)printf(“%d%c%d=%dn”,m,ch,n,result);getch();5.程序 cmody032.c 的功能是:输出 201300 之间的所有素数,统计总个数答案:#include#includevoid main()int num;printf(“n”);num=fun();printf(“nthe total of prime is %d”,num);getch();int fun()int m,i,k,n,n=0;for(m=201;m=300;m+=2)k=sqrt(m+1);for(i=2;ik)/*/prinf(“%-4d”,

67、m);return n;6 程序 cmcdy051.c 其功能是统计输入字符串中大写类英文字母的个数。答案:#include#includemain()/*/char str1255/*/;int i,len,sum=0;printf(“please input a string:n”);scanf(“%s”,str1);len=strlen(str1);len=strlen(str1);for(i=0;i=a&str1i=z)/*/ sum+; /*/printf(“%dn”,sum;); getch();7.程序 cmody052.c,其功能是实现从键盘依次输入 M 个整数,输出其中所有的

68、偶数。 如输入:23 62 38 45 26 输出:62 38 26 答案:#include #include /*/#define M 5 /*/ main() int a M,I;printf(“please input 5 numbers:n”);for(i=0;iM ;i+) Scanf (“%d”,&ai);printf(“Even numbers:n”);for(i=0;iM;i+)/*/ if (ai&2= =0) /*/ printf(“%d”,ai); gerch();8.程序 cmody021.c 输出如下所示图形* * * * * * * * * * * * * * *

69、* * * * * *答案:#includevoid main()/*/int i,j;/*/for(i=1;i=5;i+) for(j=1;j=10-2*I;j+)printf(“”);for(j=1;j=2*i-1;j+)printf(“*”); printf(“n”);9.程序 comody 022. .c 的功能是求解百元买百鸡问题:设一直公鸡 2 元,一直母鸡 0.5 元。问一百元买一百只鸡、公鸡、母鸡、小鸡数可分别为多少?有多少中分配方案?答案:#include#include/*/int fun()/*/int hen,cock,chicken,n=0; For(cock=0;c

70、ockhen:%d,cock:%d,chickjen:%dn”,n,hen,cock,chicken);if(n=20) getch();return n;void main()int num;num=fun();printf(“n There are %d solutions.n”,num);getch();10、程序 cmody061.c 功能输入字符串08的数字字符比它大 1 的数字字符将9变为0。如输入:ab12cd56EF89GH4 ab23cd67EF90GH5答案:#include#includemain()char str1128,str2128;int i,len;gets(

71、str1);len=strlen(str1);/*/for(i=0;i=len;i+)/*/if(str1i=0&str1i=8)str2i= (str1i+1;else if(str1i=9)str2i=0;elsestr2i=str1i;/*/ str2i=0; /*/ puts(str2); getch();11.程序 cmody062.c 功能将程序中两个字符串“ABC”, “xyz”连接在一起并输出ABCxyz答案:#include #includevoid main() char s112=”ABC”,s2=”xyz”; char*ps1=s1,*ps2;/*/ ps2=s2; /

72、*/*/ while(*ps1!=0) /*/ ps1+; while (*ps2)*(ps1+)=*(ps2+); printf(“%sn”,s1); getch(); 12.程序 cmody011.c 的功能是:从字符串数组 str1 中取出 ASCII 码值为偶数切下标为偶数的字符依次存放到字符串中。eg:若 str1 所指的字符串为:4AZ18C? Ge9a0z! 则 t 所指的字符串为: 4ZBZ答案:#include #include #include #include void main() char str1100,t200; int I,j;/*/ j=0; /*/clrsc

73、r(); strcpy(str1,”4AZ18c?Ge9a0z!”); for (i=0;istrlen(str1);i+)/*/if (str1i%2= =0)&(i%2= =0) /*/ tj=str1i; j+; tj=0;printf(“n Original string:%sn”,str1);printf(“n Result string:%sn”,t);填空题1补充程序是其计算 f(x)=|x|-2/x 平方+1答案:#include#includevoid main()int x;/*/float f; /*/printf(input an integer:);scanf(%d,

74、&x);f=/*/(fabs(x)-2)/(x*x+1) /*/printf(f(x)=%fn,f);2.补充程序 ccon 012.c 该程序用公式 =4*(1-1/3+1/5+1/7+1/10001) ,计算圆周率的近似值。答案:#includevoid main()double pi=0;long i ,sign=1;for(i=1;1=10001;i+=2)pi+=1.0*sign/i;sign/*/ -sign/*/;pi*=/*/ 4 /*/printf(“%fn”,pi);3.补充程序 ccon 013.c 程序实现从 10 个数中找出最大值和最小值。答案:#include#in

75、cludeint max,min;void find_max_min(int*p,int n)int*q;max=min=*p;for(q=p;q/*/;q+)if(/*/ max*q)min=*q;void main()int i,num10:printf(“input 10 numbers:”);for(i=0;i10;i+)scanf(“%d”,&numi);find-max-min(/*/ num /*/,10);printf(“max=%d,num=%d/n”,max,min);4.补充程序 ccon021.c,使其计算满足下式上午一位整数 a 和 b 的值。abxba=403答案:

76、#includevoid main()int a,b,k;int plu=/*/403/*/;for(a=1;a10;a+)for(b=1;b10;b+) k=(a*10+b)*/*/(b*10+a)/*/; if(k=plu)printf(A=%d,B=%d/n,a,b); 5.补充程序 Ccon.022.c,使其实现输入若干个整数,统计其中大于 0 和小于 0的个数,以 0 结束输入答案:#includevoid main() int n,a,b; /*/ a=0; b=0; /*/ scanf(%d,&n); while(/*/ n!=0 /*/)if(n0) a+;else /*/ i

77、f(n0) b+;/*/scanf(%d,&n);printf(Positive integer:%d,negative integer:%dn,a,b);6.补充程序 Ccon023.c,该程序可测试歌德巴赫猜想:从键盘上输入一个大于 6的偶数,总能找到两个素数,使得这两素数之和正好等于该偶数。答案:#include#includeint prime(int n)int k,flag=1;for(k=2;k=n/2+1;k+)if(n%k=0)flag=/*/0/*/;break;return flag;void main()int num,a;/ clrscr();doprintf(Ple

78、ase input an even number:);scanf(%d,&num);while(num=6|num%2=1);for(a=2;a=num/2+1;a+)if(printf(a)&prime(/*/num-a/*/)printf(n%d=%d+%d,num,a,num-a);7.补充程序 Ccon031.c,使其用牛顿迭代发求方程 2x-4x +3x-6=0 在 1.5 附近的根。答案:#include#include/*/void main()/*/float x,x0,f,f1;x=1.5;dox0=x; f=(2*x-4)*x0+3)*x0-6; f1=(6*x0-8)*x

79、0+3;x=x0-f/f1;/*/while/*/(fabs(x-x0)=1e-6); printf(the root is:%.2fn,x);8.补充程序 Ccon032.c,该程序的功能是将输入的一行字符串的大写字母转变为相应的小写字母,其余字符不变。答案:#includevoid main()char s80; int i; printf(Please input a string:);23 for(i=0;(si=getchar()!= n)&(i=a&si=A&si=Z/*/) si=si+32; printf(%c,si);9.补充程序 ccon033.c,其中 main 函数通过

80、调用 average 函数计算数组元素的平均值。答案:#includefloat average(int *pa,int n)int k; /*/float avg=0.0;/*/ for(k=0;kn;k+)avg=avg+/*/*(pa+k)/*/; avg=avgn; return avg;void main()int a5=20,30,45,64,23; float m; m=average(/*/a/*/,5); printf(average=%fn,m);10.补充程序 con041.c 使其实现从链盘输入一个同学的姓名(如“jack”),输出问题该同学的信息(如”hello,ja

81、ck!”).答案:/*/#include /*/main()/*/ char /*/str11; printf(please input a name:n);scanf(%s,str); printf(hello,%s!n,str); getch();11.补充程序 con042.c 程序中的 insort()函数用冒泡法对数组 a 中 m 个元素从大到小排序。答案:#include#includevoid sor(int a,int m)int i,j,t,swap; for(i=0;i/*/m-1/*/;i+) swap=0; for(j=0;jm-i-1;j+) if/*/(ajaj+1

82、)/*/ swap=1; t=aj; aj=/*/ aj+1 /*/; aj+1=t; if(!swap)break; void main() int a=23,55,8,32,18,2,9; int i,k=sizeof(a)/sizeof(int);sort(a,k);for(i=0;ik;i+) print(“%d”,ai);printf(“n”);getch();12.补充程序 con043.c 程序中的 fun()函数用勾股定理判断一个三角形是否为直角三角形,即输入三角形的三边 a,b,c,能回 1,不能回 0。答案:#include#includeint fun(/*/ float

83、 a,float b,float c /*/) float temp; int btrue=0; if(ab) temp=a; a=b; b=temp; if(ac) temp=a; a=c; c=temp; if(fabs(/*/ a*a /*/-(b*b+c*c)1.0e-15) btrue=1;return btrue;main() float a,b,c; printf(“please input three numbers:n”); scanf(“%f%f%f”,&a,&b,&c); if(fun(a,b,c)=1) printf(“yesn”); else printf(“non”

84、); getch();13.补充程序 ccon051.c,使其实现从键盘输入一个整数,输出该数的平方。答案:#includemain() int x; printf(“please input a number:n”); scanf(“%d”,/*/&x /*/ x*x /*/); getch();14.补充程序 ccon052.c,使程序中的 sort()函数用选择法对数组 a 中的 m 个元素,从小到大排序。答案:#include#includevoid sort(int a,int m)int i,j,k,t; for(j=i+1;im-1;i+) if(ajak)/*/k=j/*/;

85、if(k!=i) t=ak;ak=ai;ai=/*/t/*/; void main() int a=72,25,58,32,2,15,7,64; int i,m=sizeof(a)/sizeof(int); sort(a,m); for(i=0;im;i+) printf(“%d”,ai); printf(“n”); getch();15.补充程序 ccon053.c,使程序中的 fun()函数,能根据三角形三边长 a,b,c,用公式 根号 s(s-a)(s-b)(s-c),s=(a+b+c)/2 计算这个三角形的面积, ()规定:若这三条边不能构成三角形,返回-1) 。答案:#include

86、#include/*/float /*/fun(float a,float b,float c) float s,area; s=/*/(a+b+c)/2 s=s*(s-a)*(s-b)*(s-c); if(s0)area=-1; elsearea=sqrt(s); return area;main() float a,b,c,area; printf(“please input three number:t”); scanf(“%f%f%f”,&a,&b,&c); area=fun(a,b,c); printf(“area is:%.2fn”,area); getch();16.补充程序 c

87、con061.c,使其从键盘输入一个 4 行 4 列的二维整型数组表 4*4 阶矩阵,并计算第一列元素之和。如输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16输出:28答案:#include#includemain()int i,/*/ j /*/; int a44,sum; sum=/*/ 0 /*/; printf(“please input 16 numbers:n”); for(i=0;i4;i+) for(j=0;j4;j+)scanf(“%d”,&aij); for(i=0;i4;i+) /*/ sum+= ai0; /*/ printf(“%dn

88、”,sum); getch();17.补充程序 Ccon062.c,使程序中的 fun()函数用二分法在已按从小到大排好序的数组 a 中直找 q,若找到第一个 q 返回对应的下标,没找到返回-1.答案:#includeint fun(int a,int n,/*/ int q /*/) int left,right,mid; left=0; right=n-1; while(left=right) mid=/*/ (left+right)/2 /*/; if(qamid) left=mid+1; else return mid; return -1; main() int a=3,4,6,11

89、,17,22,31,45; int k,n; n=sizeof(a)/sizeof(int); k=fun(a,n,31); printf(“%dn”,k); getch();18.补充程序 Ccon063.c,使其中的 fun()函数判断输入的一个点x,y是否位于坐标在原点,半径为 rr0的圆内。答案:#include#includeint fun(/*/float r/*/,float x,float y) int bin;bin=/*/ sqrt(x*x+y*y)/*/r;return bin;main() float r=-1,x,y; int bin; while(r0):n”); scanf(“%f%f”,&x,&y); bin=fun(r,x,y); if(bin=1) prinf(“in the circle!n”); else printf(“out of the cirle!n”); getch();

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号