武汉理工大学继续教育《C语言程序设计》在线作业
- 格式:doc
- 大小:40.50 KB
- 文档页数:11
单选题 1.(A) 包含1个字符(B) 包含2个字符 (C) 包含3个字符(D) 是非法表示C 难度:较易 分值:1.02.(A)108 (B) 18 (C) 12 (D)2A 难度:较易 分值:1.03.(A)5 18 7 16 9 12 (B)15 18 17 16 19 12 (C)15 8 17 6 19 2 (D)5 8 76 9 2A难度:较易分值:1.04.(A) -1 (B) 2 (C) 1 (D) 0D难度:较易分值:1.05.(A) 2 (B) 3 (C) 6 (D) 7D难度:较易分值:1.06.(A) S是一个结构体类型名(B) p是一个结构体类型名(C) p是指向结构体类型S的指针类型名(D) no是结构体类型S的成员B难度:较易分值:1.0 7.(A)(B)(C)(D)B难度:较易分值:1.0 8.(A)(B)(C)(D)B难度:较易分值:1.09.(A)(B)(C)(D)D难度:较易分值:1.010.(A) 0 (B) 3 (C) 4 (D) 无限C难度:较易分值:1.0 11.(A)(B)(C)(D)C难度:较易分值:2.0 12.(A)(B)(C)(D)B难度:较易分值:2.0 13. 对二维数组的正确定义是()(A)(B)(C)(D)C难度:较易分值:2.0 14.(A)(B)(C)(D)C难度:较易分值:2.015.(A) 11 (B) 10 (C) 9 (D) 8B难度:较易分值:2.016. 以下叙述正确的是()(A) 宏名必须用大写的英文字母表示(B) 宏定义不仅是符号替换,也可以赋值(C) 宏替换是在程序编译时完成的,不占用程序运行时间(D) 引用带参数的宏时,实际参数与宏定义中的形式参数类型应一致B难度:较易分值:2.017. 以下属于C语言保留字的是()(A) fopen (B) include (C) get (D) unsignedD难度:较易分值:2.0 18. 在循环语句的循环体中,break语句的作用是()。
《C语言程序设计》在线作业一满分标准答案《C语言程序设计》在线作业一1:下列关于指针定义的描述中错误的是()。
A:指针是一种变量,用于存放变量的地址。
B:指针变量的类型与它所指向的变量类型一致。
C:指针变量的命名规则与标识符相同。
D:定义指针时,标识符前的‚*‛号表示指针所指向的内容。
正确答案:D2:合法的字符型常数是()。
A:A'B:"A"C:65D:A正确答案:A3:设x,y,z,k都是int型变量,则执行表达式x=(y=4,z=16,k=32)后,x的值为()。
A:4B:16C:32D:52正确答案:C4:正确的用户标识符是()。
A:voidB:c5_b8C:forD:3a正确答案:B5:c语言中int型数-8在内存中的存储形式为()。
A:1111111111111000B:1000000000001000C:0000000000001000D:1111111111110111正确答案:A6:设int a [9],*p=a;则不能表示a [1]地址的表达式为()。
A:p+1B:a+1C:a++D:++p正确答案:C7:设整型变量n的值为2,执行语句‚n+=n-=n*n;‛后,n的值是()。
A:0B:4C:-4D:2正确答案:C8:对于struct ex{int x;float y;char z;}example;则下面的叙述中不正确的是()。
A:struct是结构体类型的关键字B:example是结构体类型名C:x,y,z都是结构体成员名D:struct ex是结构体类型正确答案:B9:设int x=3,y=4,z=5;则值为0的表达式是()。
A:x>y++B:x<=++yC:x!=y+z>y-zD:y%z>=y-z正确答案:A10:一个C语言程序是由()构成。
A:语句B:行号C:数据D:函数正确答案:D11:定义结构体的关键字是()。
C语言练习题(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用)1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
#include <stdio.h>int fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运行后 a 中的值为8,b中的值为3。
#include <stdio.h>void fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。
1.注释可以出现在C语言程序中的任何位置
2.C语言本身没有输入输出语句
3.一个C源程序可由一个或多个函数组成
4.一个C源程序必须包含一个main函数
5.C程序的基本组成单位是函数
6.花括号"{"和"}"可以作为函数体的定界符
7.C语言以接近英国国家的自然语言和数学语言为语言的表达形式
8. 一个算法应包含有限个步骤
9. 在计算机上实现的算法是用来处理数据对象的
10. 算法的目的是为了求解
11.一个C语言程序必定从主函数开始执行。
12. 函数体由符号 { 开始,用符号 } 结束。
13. C语言源程序文件的后缀是 C ,经过编译后,生成文件的后缀是 OBJ 经过连接生成文件的后缀是EXE 。
14.在C程序中,逗号运算符的优先级最低。
15. 在C程序中,APH和aph是两个不同的变量。
16. 若a和b类型相同,在执行赋值表达式a=b后b中的值将放入a中,而b中的值不变。
17. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
单选题1. C语言中,若缺省定义函数返回值类型,则该函数默认返回值类型是()。
(A) void (B) long (C) int (D) doubleC难度:较易??分值:1.0??2. 下面叙述错误的是()。
(A) C源程序可由一个或多个函数组成(B)(C)(D) 注释说明部分只能位于C源程序的最前面D难度:较易??分值:1.0??3. 下面叙述错误的是()。
(A)(B)(C) 预处理命令行必须以分号结束(D) C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率D难度:较易??分值:1.0??4. ()语句符合C语言语法。
(A)(B)(C)(D)B难度:较易??分值:1.0??5. C语言中,数组名作为函数调用的实参时,下面叙述正确的是()。
(A) 传递给形参的是数组元素的个数(B) 传递给形参的是数组第一个元素的值(C) 传递给形参的是数组中全部元素的值(D) 形参数组中各元素值的改变会使实参数组相应元素的值同时发生变化D难度:较易??分值:1.0??6.(A)(B)(C)(D)A难度:较易??分值:1.0??7. 下面关于字符数组的叙述中,错误的是()。
(A)(B)(C)(D)A难度:较易??分值:1.0??8. 下面叙述正确的是()(A) 每行最多只能写两条语句(B) 程序中必需含有自定义函数(C)(D)D 难度:较易??分值:1.0??9. 以下叙述中正确的是( )。
(A)(B)(C)(D)A 难度:较易??分值:1.0??10. ( )是关于C 语言数据类型的正确叙述。
(A)变量必须先定义后使用(B)不允许使用空类型(C)枚举类型不是基本类型(D)数组并不是构造类型A 难度:较易??分值:1.0?11. ( )为正确的用户标识符。
(A)(B)(C)(D)D 难度:较易??分值:2.0??12. C 语言的下列运算符中,优先级最高的运算符是( )。
(A)(B)(C)(D)A 难度:较易??分值:2.0??13.(A) 16, 8(B) 8, 8(C) 16, 16(D)8, 16 A 难度:较易??分值:2.0??14. 不能对二维数组a 进行正确初始化的语句是( )。
武汉理⼯C语⾔试题⼀、选择题1.Turbo C2.0中,若定义float a,则变量a在内存中分配的字节数是(B )。
A. 2B. 4C. 8D.162.不合法的字符常量是( B )。
A.‘\t’B.“A”C. ‘a’D. ‘\x32’3.Turbo C 2.0中,unsigned型数据的取值范围是( C )A.-215∽(215-1)B.-231∽(231-1)C.0∽(216-1)D.0∽(232-1)4.若int k=7,x=12;则能使值为3的表达式是(D)。
A. x%=(k%=5)B. x%=(k-k%5)C. x%=k-k%5D. (x%=k)-(k%=5)5.若有语句scanf(“%d,%d,%d”,&a,&b,&c);则在执⾏时输⼊正确的形式是(B )。
A.1↙2↙3↙B.1,2,3↙C.1 2 3↙D.1,2 3↙6.执⾏下列程序段时输出结果是(B)。
unsigned int a=65535;printf(“%d”,a);A.65535 B.-1 C.-32767 D.17.若有a=12,表达式a*=2+5的值是(D )。
A.7 B.17 C.29 D.848.若x≥0时,y=1,x<0时,y=-1,下⾯错误的程序段是( D )。
A.if (x>=0) y=1; B.y=-1;if (x<0) y= -1; if (x>=0) y= 1;C.if (x>=0) y=1; D.if (x>=0) y=1;else y= -1; y= -1;9.有int a=0xfffd;若以% d格式输出,则正确答案是( C )。
A.-1 B. -2 C. -3 D. -410. 要执⾏for(表1;表2;表3)循环,要求必须是( D )。
A. 表1的值为0B. 表1的值为⾮0C. 表2的值为0D. 表2的值为⾮0 11.下⾯不是逻辑运算符的是( A )。
《C语言程序设计》实验报告
实验课程名称C语言程序设计
开课学院计算机科学与技术学院指导教师姓名
学生姓名X X
学生专业班级信息管理与信息系统1101班2012—2013学年第1学期
实验一顺序结构的程序设计
题目一:
程序代码:
题目二:
程序代码:
实验二:选择结构的程序设计题目一:
程序代码:
运行结果:
题目二
程序代码:
运行结果:
实验三循环结构的程序设计题目一
程序代码:
运行结果:
题目二:程序代码:
运行结果:
实验四数据和指针应用的程序设计题目一
程序代码:
运行结果:
运行结果:
程序代码:
运行结果:
实验五函数应用的程序设计程序代码:
运行结果:
程序代码:
运行结果:。
武汉理工大学《C语言程序设计》期末考试试卷(A卷)(2011级各专业)一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是。
A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由。
A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是。
A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是。
#include<stdio.h>main(){int x;float y;scanf("=%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是。
A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是。
#include<stdio.h>{ int i=10,j=10;printf("%d,%d\n",++i,j--); }A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是。
#include<stdio.h>main(){ char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是。
《C语言及程序设计》在线作业答案一、单选题(共15 道试题,共75 分。
)V1. 合法的C语言标识符是()。
A. abcB. 2abC. _a1D. /n满分:5 分2. 有两个字符数组a、b,则以下正确的输入语句是()。
A. gets(a,b);B. "scanf(""%s%s"",a,b);"C. "scanf(""%s%s"",a,b);"D. "gets(""a""),gets(""b"");"满分:5 分3. 若运行以下程序时,从键盘输入25,13,10回车,则输出结果为()。
main(){inta1,a2,a3;scanf("%d%d%d",a1,a2,a3);printf("a1+a2+a3=%d\n",a1+a2+a3);}A. a1+a2+a3=48B. a1+a2+a3=25C. a1+a2+a3=10D. 不确定值满分:5 分4. 以下为一维整型数组a的正确说明是()。
A. inta(10);B. "intn=10,a[n];"C. "intn;scanf(""%d"",n);"D. "#defineSIZE10;inta[SIZE];inta[n];"满分:5 分5. 以下能对二维数组a进行正确初始化的语句是()。
A. inta[2][]={{1,0,1},{5,2,3}};B. "inta[][3]={{1,2,3},{4,5,6}};"C. "inta[2][4]={{1,2,3},{4,5},{6}};"D. "inta[][3]={{1,0,1},{},{1,1}};"满分:5 分6. 函数rewind(fp)的作用是:使文件位置指针()。
1: 单项选择题(5分)已知: struct sk{ int a;float b;}data, *p;假设有p=&data,那么对data中的成员a的正确引用是().A: p->B: (*p).C: (*p).aD: 单项选择题(5分)以下表达中正确的选项是().A: 组成C程序的大体单位是函数B: 能够在一个函数中概念另一个函数C: 所有被挪用的函数必然要在挪用之前进行概念D: main()函数必需放在其它函数之前3: 单项选择题(5分)假设有说明语句"int a[5],*p=a;",那么对数组元素的正确引用是().A: p[a]B: a[p]C: *(p+2)D: p+24: 单项选择题(5分)假定int类型变量占用两个字节,其有概念:int x[10]={1,4,4};,那么数组x 在内存中所占字节数是().A: 20B: 10C: 3D: 65: 单项选择题(5分)变量的指针,其含义是指该变量的().A: 地址B: 值C: 一个标志D: 名6: 单项选择题(5分)语句int *p;说明了().A: p是指向函数的指针,该函数返回一int型数据B: p是指向一维数组的指针C: p是指向int型数据的指针D: p是函数名,该函数返回一指向int型数据的指针7: 单项选择题(5分)在函数调历时,以下说法正确的选项是().A: 函数挪用后必需带回返回值B: 实际参数和形式参数能够同名C: 主调函数和被调函数老是在同一个文件里D: 函数间的数据传递不能够利用全局变量8: 单项选择题(5分)以下能对一维数组a进行初始化的语句是().A: int a{5}={10*1}B: int a[3]={0,1,2}C: int a(5)={}D: int a[5]=(0,1,2,3,4,)9: 单项选择题(5分)在C语言程序中,有关函数的概念正确的选项是().A: 函数的概念能够嵌套,但函数的挪用不能够嵌套B: 函数的概念不能够嵌套,但函数的挪用能够嵌套C: 函数的概念和函数的挪用均能够嵌套D: 函数的概念和函数的均不能够嵌套10: 单项选择题(5分)已知:int a, *p=&a; 那么以下函数挪用中错误的选项是().11: 判定题(5分)假设用数组名作为函数调历时的实参,那么传递给形参的是数组首地址. A: 对B: 错12: 判定题(5分)已知:(设整型2字节,字符型1字节,浮点型4字节)struct{ int i;int j;char c;float a;}test;那么sizeof(test)的值是9.A: 对B: 错13: 判定题(5分)一个C++程序能够有多个主函数.A: 对B: 错14: 判定题(5分)一维数组元素的下标依次是一、二、3、4.A: 对B: 错15: 判定题(5分)设有如下概念:struck sk{ int a;float b;}data;int *p;假设要使P指向data中的b域,赋值语句为p=&.A: 对B: 错16: 判定题(5分)二维数组能够如此概念int a[2][]={1,2,3,4,5,6}.A: 对B: 错17: 判定题(5分)有如下程序int a[10]={0,1,2,3,4,5,6,7,8,9},*P=a;那么数值为9的表达式为*(P+9). A: 对B: 错18: 判定题(5分)C语言中,函数返回值的类型是由return语句中的表达式类型决定的.A: 对B: 错19: 判定题(5分)1. 假设有说明:int a[][3]={{1,3,2},{4,5},{8,7}}; 那么数组a的第一维的大小为3. A: 对B: 错20: 判定题(5分)假设a是整型变量,pb是基类型为整型的指针变量,那么赋值表达式为pb=&a.A: 对B: 错。
武汉理工大学C语言期末试题武汉理工大学考试试卷B卷)2010 ~2011 学年 2 学期 C语言程序设计课程闭卷一、单项选择题(每题2分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将所选代码填写在下面表格中的对应位置。
错选、多选或未选均无分。
1.以下叙述不正确的是______。
A.在C程序中,注释说明只能位于一条语句的后面。
B.一个C源程序可由一个或多个函数组成。
C.一个C源程序必须包含一个main函数。
D.C程序的基本组成单位是函数。
2.以下选项中,______是合法的C语言字符常量。
A. ″A″B.′ \x43 ′C.′ ab ′D.′ \084 ′3.以下不是合法的C语言赋值语句为______。
A.++a;B.n=(m=(p=0));C.a=b==c;D.k=a+b=1;4.设在C语言中,一个int型数据在内存中占用2个字节,则unsignedint型数据的取值范围为______。
A.0~255B.0~32767C.0~65535D.0~21474836475.已知字符′ b ′的ASCII码为98,语句printf(″ %d, %c″, ′ b ′, ′ b ′ + 1);的输出结果为______。
A.98,bB.语句不合法C.98,99D.98,c6.执行语句for(i=1;i++<4;);后,变量i的值是______。
A.3B.4C.5D.不定7.若有声明int a[3][4];,则对a数组元素的非法引用是。
A. a[0][2*1]B. a[1][3]C. a[4-2][0]D. a[0][4]8.在C语言程序中,数组名做函数调用的实参时,传递给形参的是。
A.数组第一个元素的值 B.数组的首地址C.数组全部元素的值 D.数组元素的个数9.设有数组定义: char array [ ]="China"; 则数组 array所占的存储空间为。
武汉理工大学继续教育本科专业c语言程序设计。
单选题1。
(一)包含1个字符(二)包含2个字符(三)包含3个字符(四)是非法的,以表示难度:更容易得分:1.02。
(一)108(二)18(三)12(四)2困难:更容易得分:1.03。
(a)5 18 7 16 9 12(b)15 18 17 16 19 12(c)15 8 17 6 19 2(d)5 8 7 6 9 2a困难:更容易得分:1.04。
(一)-容易得分:1.02。
(一)108(二)18(三)12(四)2困难:更容易得分:1.03。
(a)5 18 7 16 9 12(b)15 18 17 16 19 12(c)15 8 17 6 19 2(d)5 8 7 6 9 2a困难:更容易得分:1.04。
更简单的分数:1.05。
(一)2(二)3(三)6(四)7难度:更容易得分:1.06。
S是结构类型名,p是结构类型名,p是指向结构类型的指针类型名,不,是结构类型的成员,难点:更容易得分:1.07。
困难:更容易得分:1.08。
困难:1.09。
困难:更容易得分:1.010。
(一)0(二)3(三)4(四)无限C难度:更容易得分:1.011。
困难:更容易得分:2.012。
困难:更容易得分:2.013。
二维数组的正确定义是()(a) (b) (c) (d) c困难:更容易得分:2.014。
困难:更容易得分:2.015。
难度:更容易得分:2.016。
以下陈述是正确的()(a)宏名称必须用大写英文字母表示(B)宏定义不仅是符号替换,而且是赋值(c)宏替换在程序编译时完成,不占用程序运行时间(d)当引用带参数的宏时,宏定义中的实际参数和形式参数类型应与难度(B)一致:更容易得分:2.017。
下列保留字在C中是()(a) fopen (b)包括(c) get (d) unsigned 困难:2.018。
在循环语句的循环体中,break语句的功能是()。
(a)在break 语句之后继续执行循环体的语句,(b)提前结束循环,然后执行循环后的语句,(c)结束当前循环,(d)暂停程序运行,以及(c)困难: 更容易得分:2.019。
注:在Visual C++ 6.0编译环境中亲自调试通过,但不保证在Turbo C 中通过。
实验二 选择结构的程序设计(题目当初没抄下来,这是根据程序整理的)1.编程实现分段函数⎪⎩⎪⎨⎧<≤-+-<≤-+<≤--=2112381011030184242x x x x x x x x x y#include<stdio.h> main() { float x,y; printf("Please input x:"); scanf("%f",&x); if (x<-1||x>=2) printf("Data Error\n"); else { if (x>=-1&&x<0) y=4*x-8; if (x>=0&&x<1) y=3*x*x+10*x-1; if (x>=1&&x<2) y=8*x*x*x*x-3*x*x+2*x-1; printf("\ny=%f\n",y); } } 2. 苹果有三个等级,一级5.50元/斤,二级3.00元/斤,三级2.50元/斤。
编写程序,输入苹果的等级,购买的数量和所付的钱数,输出等级,购买的数量、应付钱数和找零。
#include<stdio.h> main() { int level; double weight,pay,money,charge; printf("Please input the level:"); scanf("%d",&level); printf("Please input the weight you want:"); scanf("%lf",&weight); printf("Please input the money you pay:"); scanf("%lf",&pay); if (level<1||level>4||weight<0) printf("Data Error\n"); else{ if (level==1) money=weight*5.50; else if (level==2) money=weight*4.20; else if (level==3) money=weight*3.00; else if (level==4) money=weight*2.50; charge=pay-money; printf("\nLevel:%d\nweight:%g\n",level,weight); printf("money:%g\ncharge:%g\n\n",money,charge); } }实验三循环结构1.编程计算1!+2!+3!+4!+5!●分别用单层循环和双层循环实现●考虑∑∑==201101iiii!和!#include<stdio.h>main(){int i,x;double j,k,sum;printf("Please input a number:");scanf("%d",&x);//用单层循环for(sum=0,j=1,i=1;i<=x;i++){j*=i;sum+=j;}printf("The result is %lf\n",sum);//用双层循环for(sum=0,i=1;i<=x;i++){for(k=1,j=1;j<=i;j++) k*=j;sum+=k;}printf("The result is %lf\n",sum);}2.共20个评委给选手评分,去掉1个最高分,去掉1个最低分,其余18名评委的平均分即选手最终得分#include <stdio.h>main(){double score,min,max,avg=0;int i;//下面是为了输入第一个数printf("Please input 20 scores...\n");printf("Score 1: ");scanf("%lf",&score);min=score;max=score;avg+=score;// 下面为了输入剩余19个数for(i=2;i<=20;i++){do{printf("Score %d: ",i);scanf("%lf",&score);}while(score<0);if(score>max) max=score;avg+=score;}avg=avg-min-max;avg/=18;printf("\nThe average score is %lf:\n",avg);}实验四数组和指针的应用1.定义一个有10元素的一位数组count,从键盘上输入8个整数,将其按从大到小的顺序排列,并将排序后的数组输出(1)数组方法#include<stdio.h>main(){int count[10],t,i,j;printf("Please input 8 numbers:\n");for(i=0;i<8;i++)scanf("%d",&count[i]);for(i=0;i<8;i++)for(j=i+1;j<8;j++)if (count[i]<count[j]){t=count[i];count[i]=count[j];count[j]=t;}printf("The sorted array is as follows:\n");for (i=0;i<8;i++)printf("%d ",count[i]);}(2)指针方法#include<stdio.h>main(){int count[10],t,i,j,*p=count;printf("Please input 8 numbers:\n");for(i=0;i<8;i++)scanf("%d",&p[i]);for(i=0;i<8;i++)for(j=i+1;j<8;j++)if (*(p+i)<*(p+j)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}printf("The sorted array is as follows:\n");for (i=0;i<8;i++)printf("%d ",count[i]);}2.输入2个字符串,将二者连接并输出,再将连接后的字符串反向排列并输出,并求连接后字符串的长度#include<stdio.h>#include<string.h>main(){int i,len;char a1[51],a2[26],t[51];printf("Please input 2 strings:\n");gets(a1);gets(a2);strcat(a1,a2);printf("The joint string is: %s",a1);len=strlen(a1);printf("\nThe length of the linked string is: %d\n",len);for(i=0;i<len;i++)t[i]=a1[len-i-1];t[len]=0;strcpy(a1,t);printf("The reversed string is: %s\n",a1);}实验五函数应用的程序设计1.要求是:编写一函数,统计字符串中字母、数字、空格和其他字符的个数在主函数中输入字符串并输出统计结果值传送:#include<stdio.h>void fun(char a,int *b){if(a>='A'&&a<='Z'||a>='a'&&a<='z')b[0]++;else if(a>='0'&&a<='9')b[1]++;else if(a==32)b[2]++;else b[3]++;}main(){char a[50];int b[4],i,j,k;for(i=0;i<3;i++){for(j=0;j<4;j++)b[j]=0;printf("\nPlease input a string:\n");gets(a);k=0;while(a[k]!=0){fun(a[k],b);k++;}printf("The string have %d letters, %d numbers, %d spaces, %d other chars\n",b[0],b[1],b[2],b[3]);}}地址传递:#include<stdio.h>void fun(char *a,int *b){int i=0;while(a[i] != 0){if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z')b[0]++;else if((a[i]>='0')&&(a[i]<='9'))b[1]++;elseif(a[i]==32)b[2]++;else b[3]++;i++;}}main(){char a[50];int b[4],i,j;for(i=0;i<3;i++){for(j=0;j<4;j++)b[j]=0;printf("\nPlease input a string:\n");gets(a);fun(a,b);printf("\nThe string have %d letters, %d numbers, %d spaces, %d other chars",b[0],b[1],b[2],b[3]);}}。
一、单选(共计100分,每题2.5分)1、若已定义int a=11; 执行以下语句后的输出结果是()。
printf("a=%d,a=%o,a=%x\n",a,a,a) ;A. a=11, a=11, a=bB. a=11, a=13, a=bC. a=11, a=13, a=cD. a=11, a=12, a=132、A.B.C.D.3、以下程序运行后,文件test.txt的内容是()。
#include <stdio.h> main() { FILE *fp; char str[][10]={"first","second"}; fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[0]); fclose(fp); fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[1]); fclose(fp); }A. firstB. secondC. first secondD. second first4、若有以下定义:struct node { int data; struct node *next; } struct node *head,*p; 已建立如下图所示的链表: p ↓┌──┬──┐┌──┬──┐┌──┬──┐head →│data│next┼→│data│next┼→... →│data│NULL│└──┴──┘└──┴──┘└──┴──┘能删除指针p所指向结点的程序段是()。
A. p = p->next; head->next=p->next; free(p);B. free(p); p = p->next; head->next=p->next;C. head->next = p->next; free(p);D. free(p); head->next = p->next;5、若有定义:int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; ,则()表达式是错误的。
一、单选(共计100分,每题2.5分)1、若已定义int a=11; 执行以下语句后的输出结果是()。
printf("a=%d,a=%o,a=%x\n",a,a,a) ;A. a=11, a=11, a=bB. a=11, a=13, a=bC. a=11, a=13, a=cD. a=11, a=12, a=132、A.B.C.D.3、以下程序运行后,文件test.txt的内容是()。
#include <stdio.h> main() { FILE *fp; char str[][10]={"first","second"}; fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[0]); fclose(fp); fp = fopen("test.txt", "w"); if(fp!=NULL) fprintf(fp,"%s",str[1]); fclose(fp); }A. firstB. secondC. first secondD. second first4、若有以下定义:struct node { int data; struct node *next; } struct node *head,*p; 已建立如下图所示的链表: p ↓┌──┬──┐┌──┬──┐┌──┬──┐head →│data│next┼→│data│next┼→... →│data│NULL│└──┴──┘└──┴──┘└──┴──┘能删除指针p所指向结点的程序段是()。
A. p = p->next; head->next=p->next; free(p);B. free(p); p = p->next; head->next=p->next;C. head->next = p->next; free(p);D. free(p); head->next = p->next;5、若有定义:int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a; ,则()表达式是错误的。
A. a[2]B. p++C. p[2]D. a++6、下面叙述错误的是()。
A. C源程序可由一个或多个函数组成B.C.D. 注释说明部分只能位于C源程序的最前面7、()为合法的常量。
A.B.C.D.8、以下程序的运行结果是()。
void main() {int s = 0, i = 0; while(i< 8) { i++; if(i%2==0) continue; s+=i; } printf("%d\n",s); }A. 36B. 7C. 16D. 129、以下程序段的运行结果是()。
main() { int i=4,j; j=i; pic(i+2*j-2,'*'); putchar('\n'); for(j-=2;j>=0;j--) { pic(3-j, ' '); pic(i+2*j, '*'); putchar('\n'); } } pic(int len,char c) { int k; for(k=1;k<=len;k++) putchar(c);}A.B.C.D.10、设有以下程序段:int a=1, b=10, c=1, x; x=a&&b||++c; printf(″%d, %d\n″,x,c); 执行后输出的结果是()A. 0,0B. 0,1C. 1,0D. 1,111、以下条件语句中(其中s1和s2分别表示C语言的语句),()与其他三条语句不等价。
A. if(a) s1; else s2;B. if(a == 0) s2; else s1;C. if(a != 0) s1; else s2;D. if(a == 0) s1; else s2;12、若已定义int arr[10]; 则不能正确引用arr数组元素的是()。
A. arr[0]B. arr[1]C. arr[10-1]D. arr[7+3]13、若有定义:int *p,k=4; p=&k;以下均代表地址的是()。
A. k, pB. &k, &pC. &k, pD. k, *p14、以下程序的运行结果是()。
main() { int a[3]={1,2,3}; int *num[3]; int **p,i; for(i=0;i<3;i++) num[i]=&a[i]; p=num; printf("%d",**p);}A. 1B. 3C. &a[0]D. num15、以下程序中的循环执行了()次。
#define N 2 #define M N+1 #define NUM (M+1)*M/2 main() { int i,n=0; for(i=0;i<NUM;i++) n++; printf("%d\n",n); }A. 5B. 6C. 8D. 916、若有定义:int x,a,b; 语句x=(a=2,b=3,a+b); 运行后,x、a、b的值依次为()。
A. 2 3 5B. 3 2 5C. 5 2 3D. 5 3 217、以下程序运行后,a的值是()。
main() { int a,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) { b+=3; continue; } b-=5; } }A. 101B. 100C. 8D. 718、下面叙述正确的是()。
A. 宏展开不占用运行时间,只占用编译时间B. 预处理命令也是C语句,必须以分号结束C. 一个源程序只能有一个预编译处理命令行D. 宏名必须用大写字母表示19、若有定义int m=4321,n=123,k=21; 语句printf("%4d+%3d+%2d",m,n,k); 执行后的输出结果是()。
A. 4321432143211231231232121B. 432112321C. 4321+123+21D. 432+123+02120、()语句符合C语言语法。
A.B.C.D.21、已有如下定义和输入语句,char c1,c2;int x; scanf("%c%d%c",&c1,&x,&c2);若要求x、c1、c2的值分别为9、'K'和'H',正确的数据输入是()。
A. K9HB. K 9 HC. K9 HD. 9KH22、A.B.C.D.23、若有定义:struct student{int num; char sex; int age;}stu1;下列叙述不正确的是()。
A. student是结构体类型名B. struct student是结构体类型名C. stu1是用户定义的结构体类型变量名D. num,sex,age都是结构体变量stu1的成员24、有以下程序:main() { int c; while((c=getchar())!= '\n') { switch(c-'2') { case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default: putchar(c+2); break; } } printf("\n"); } 当输入:247<回车>,程序的输出结果是()。
A. 689B. 6689C. 66778D. 6688725、A.B.C.D.26、下面叙述错误的是()。
A.B.C. 预处理命令行必须以分号结束D. C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率27、A.B.C.D.28、对二维数组的正确定义是()A.B.C.D.29、在C语言中,运算符″=″和″==″的功能分别是()A. 关系运算和赋值运算B. 关系运算和赋值运算C. 都是关系运算D. 都是赋值运算30、下面叙述错误的是()A. 数组中每一个元素都属于同一个数据类型B. C语言数组名称是数组在内存中的首地址C. C语言数组长度在定义数组时可不作确定D. C语言规定可逐个引用数组元素但不能一次引用整个数组31、以下程序段运行后s的值是()。
int a[3][3]={1,2,3,4,5,1,2,3,4}; int i,j,s=1; for(i=0;i<3;i++) for(j=i+1;j<3;j++) s+=a[i][j];A. 6C. 7D. 24032、若有定义:int a=6,b=7,k=0,t=1; 语句(k=a<b) && (t=a==b); 运行后,k、t的值分别是()。
A. 0 0B. 1 1C. 0 1D. 1 033、以下在任何情况下计算平方数时都不会引起二义性的宏定义是()。
A.B.C.D.34、若有下面定义,能打印出字母'L'的语句是()。
struct class { char name[8]; int age; }; struct class s[12]={"Zheng",16,"Lin",18,"Yang",19,"Guo",20};A. printf("%c\n",s[1].name[0]);B. printf("%c\n",s[2].name[0]);C. printf("%c\n",s[1].name);D. printf("%c\n",s[2].name);35、设已定义float a=2.0,b=3.0; 使a值为5.0的表达式是()。
A. a+= bB. a*=b+2.0C. a/=b+2.0D. a-=b+2.036、以下叙述中正确的是()A. C源程序中注释部分可以出现在程序中任意合适的地方B.C. C源程序编译时注释部分的错误将被发现D. 构成C源程序的基本单位是函数,所有函数名都可以由用户命名37、()是正确的数组定义。