!!!最新2009年12月C语言大题参考答案
- 格式:doc
- 大小:247.00 KB
- 文档页数:18
09年C语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的源代码不能直接在计算机上运行C. C语言支持结构化编程D. C语言不支持面向对象编程答案:D2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于指针的描述中,正确的是:A. 指针可以存储地址B. 指针可以存储数据C. 指针不能存储地址D. 指针不能存储数据答案:A4. 在C语言中,用于定义一个函数的关键字是:A. intB. voidC. returnD. function答案:A5. 下列关于数组的描述中,错误的是:A. 数组可以存储相同类型的元素B. 数组的索引从0开始C. 数组的大小在定义时确定D. 数组的大小可以在运行时改变答案:D6. 在C语言中,用于控制循环的关键字是:A. ifB. whileC. forD. switch答案:C7. 下列关于文件操作的描述中,错误的是:A. 文件操作需要使用文件指针B. 文件操作需要包含stdio.h头文件C. 文件操作不需要使用文件指针D. 文件操作需要使用fclose函数关闭文件答案:C8. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A9. 下列关于函数参数的描述中,错误的是:A. 函数参数可以是常量B. 函数参数可以是变量C. 函数参数可以是数组D. 函数参数不可以是指针答案:D10. 在C语言中,用于定义一个联合体的关键字是:A. unionB. structC. enumD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义变量的关键字是________。
答案:int2. 在C语言中,用于定义一个宏的预处理命令是________。
2009年春季江苏省高校计算机等级考试考试试题第一部分计算机基础知识1. 在下列有关现代信息技术的一些叙述中,正确的是 1 。
A.集成电路是20世纪90年代初出现的,它的出现直接导致了微型计算机的诞生B.集成电路的集成度越来越高,目前集成度最高的已包含几百个电子元件C.目前所有数字通信均不再需要使用调制解调技术和载波技术D.光纤主要用于数字通信,它采用波分多路复用技术以增大信道容量‘.2. 最大的10位无符号二进制整数转换成八进制数是 2 .。
A.1023B.1777C.1000D.10243. 在下列有关目前PC机CPU的叙述中,错误的是 3 。
A.CPU芯片主要是由Intel公司和AMD公司提供的B."双核"是指PC机主板上含有两个独立的CPU芯片C.Pentium 4微处理器的指令系统由数百条指令组成D.Pentium 4微处理器中包含一定容量的Cache存储器4. 在下列有关当前PC机主板和内存的叙述中,正确的是 4 。
A.主板上的BIOS芯片是一种只读存储器,其内容不可在线改写B.绝大多数主板上仅有一个内存插座,因此PC机只能安装一根内存条C.内存条上的存储器芯片属于SRAM(静态随机存取存储器)D.目前内存的存取时间大多在几个到十几个ns(纳秒)之间5. 在下列有关PC机辅助存储器的叙述中,正确的是 5 。
A.硬盘的内部传输速率远远大于外部传输速率B.对于光盘刻录机来说,其刻录信息的速度一般小于读取信息的速度C.使用USB 2.0接口的移动硬盘,其数据传输速率大约为每秒数百兆字节D.CD-ROM的数据传输速率一般比USB 2.0还快6. 在下列PC机I/O接口中,数据传输速率最快的是 6 。
B 2.0B.IEEE-1394C.IrDA (红外)D.SATA7. 计算机软件可以分为商品软件、共享软件和自由软件等类型。
在下列相关叙述中,错误的是7 。
A.通常用户需要付费才能得到商品软件的使用权,但这类软件的升级总是免费的B.共享软件通常是一种"买前免费试用"的具有版权的软件C.自由软件的原则是用户可共享,并允许拷贝和自由传播D.软件许可证是一种法律合同,它确定了用户对软件的使用权限8. 人们通常将计算机软件划分为系统软件和应用软件。
2009年12月安徽省C语言试题及答案一、语言基础填空(共20分,每题2分)(一)字符串”a\x44\\\nbcd\102a”的长度是____________。
(二)设变量定义int x=4,y=5;则表达式(++x<=y--)? ++x:y--的值为____________。
(三)设int a=8,b=7,c=6,x=1;执行语句if(a>6)if(b>7)if(c>8) x=2;else x=3;后x的值是______________。
(四)设x,y为int变量,则执行下列语句x=0;y=1;do{y+=x;x--;} while (y++>0);后y的值是________________。
(五)设char str1[10]=”ABCDE”,str2[10]=”xyz”;则执行下列语句printf(“%d”,strlen(strcpy(str1,str2)));后输出结果是________________。
(六)设int x[]={1,2,3,4},y,*p=&x[1];则执行下列语句y=(*--p)++;后y的值是________________。
(七) 函数调用时,若形参和实参均为数组,其传递方式是_____。
(八)若有如下说明int a[]={1,2,3,4,5,6,7,8,9,0},i;且0=<i<=10,则对数组元素地址正确表示为______。
(九)某C编译系统规定,int型数组占2个字节,则定义struct {long num;char name[20];union {float x;short y;}xy;}aa;后,sizeof(aa)=______。
(十)设FILE *fp;关闭fp对应文件的操作语句是_______。
二、阅读下列程序,写出运行结果(共20分,每题4分)<程序1>#include “stdio,h"main(){int x=1,y=0,a=0,b=0;switch(x){case 1: switch(y){case 0:a++;break;case 1:b++;break;}case 2:a++;b++;break;}printf(“a=%d,b=%d\n”,a,b);}<程序2>#include “stdio.h”main(){int x,y;for(x=1,y=1;x<=100;x++){if(y>=15) break;if(y%3= =1) {y+=3;continue;}y-=5;}printf(“x=%d,y=%d\n”,x,y);}<程序3>#include “stdio.h”main(){static int a[][3]={1,3,5,7,9,2,4,6,8};int i,j,s1=0,s2=0;for(i=0;i<3;i++)for(j=0;j<3;j++){ if(i= =j) s1=s1+a[i][j];if(i+j= =2)s2=s2+a[i][j];}printf(“%d\n%d\n”,s1,s2);}<程序4>#include “stdio.h”void s(n)int n;{static int i=1;int j=1;if(n>0){++i;j++;printf(“%d,%d\n”,i,j);s(n-1);}}main(){int k=4;s(k);}<程序5>#include “stdio.h”main(){int a[5],I,*pa,*pb;pa=pb=a;for(i=0;i<5;i++){*pb=i;pb++;}for (i=0;pa<pb;i++){printf(“a[%d]=%d\n”,I,*p a);pa++;}}三、阅读下列程序,在____处填上适当的语句使程序(或函数完整)(共18分,每空2分)(一)求两个正整数的最大公约数的函数fun( )int fun(m,n)int m,n;{int r;if(m<n) {r=m;m=n;n=r;}if(n= =0) return(m);do{__________;if (r!=0){m=n;n=________;}} while (_________);return(n);}(二)下面的程序对输入的每一个数字出现的次数进行计数。
2009年12月C语言选择题50100在C语言中,合法的字符常量是( D )。
A.'字'B."A"C."ABC"D.'\x41'50101下面叙述正确的是( B )。
A.程序中必须包含有输入语句B.变量按所定义的类型存放数据C.main函数必须位于文件的开头D.每行只能写一条语句50102错误的叙述是( D )。
A.一个C语言源程序可由一个或多个函数组成B.若一条语句较长,也可分写在下一行上C.C程序必须包含一个main()函数D.构成C语言源程序的基本单元是算术表达式50103( A )是关于C语言数据类型的正确叙述。
A.变量必须先定义后使用B.不允许使用空类型C.枚举类型不是基本类型D.数组并不是构造类型50104 main( )函数的位置( B )。
A.必须在自定义函数前面B.可以在自定义函数后面C.必须位于程序的最前面D.必须在自定义函数后面50105 C语言函数体由( C )括起来。
A.< >B.( )C.{ }D.[ ]50106( A )是不正确的叙述。
A.注释说明只能位于一条语句的后面B.C源程序的基本组成单元是函数C.C源程序可由一个或多个函数组成D.每条语句最后必须有一个分号50107一个C语言源程序是由( A )。
A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成50108结构化程序设计的三种基本结构是( C )。
A.函数结构、判断结构、选择结构B.平行结构、嵌套结构、函数结构C.顺序结构、选择结构、循环结构D.判断结构、嵌套结构、循环结构50109 C源程序的调试是指对源程序进行( C )。
A.录入与编辑B.查错与编译C.查错与排错D.连接与运行50110 C语言中,可将一系列语句置于一对( C )之间从而构成复合语句。
A.尖括号"< >"B.圆括号"( )"C.花括号"{}"D.方框号"[ ]"50111构成C源程序的基本单位是( D )。
2009计算机二级c语言考试真题及答案一、选择题(每题1分,共40分)1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C2. 若有定义:int a=3, b=4, c=5;,则表达式a+b+c的值是:A. 12B. 9C. 15D. 3答案:C3. C语言中,以下哪个选项是正确的整型常量?A. 0x12B. 0x12.0C. 0x12LD. 0x12.0L答案:A4. 在C语言中,以下哪个选项是正确的字符常量?A. 'ab'B. '65'C. '\n'D. "A"答案:C5. 若有定义:int a=5, b=10;,则执行语句a=b后,变量a的值是:A. 5B. 10C. 15D. 0答案:B6. 在C语言中,以下哪个选项是正确的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello World!"D. 'Hello World!'答案:A7. 若有定义:int a=5;,则执行语句a+=3后,变量a的值是:A. 5B. 8C. 3D. 2答案:B8. 在C语言中,以下哪个选项是正确的数组定义?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3};C. int a[] = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3, 4};答案:C9. 若有定义:int a[5] = {1, 2, 3, 4, 5};,则执行语句a[2]=6后,数组元素a[2]的值是:A. 1B. 2C. 6D. 5答案:C10. 在C语言中,以下哪个选项是正确的函数定义?A. int max(int x, int y) { return x > y ? x : y; }B. int max(int x, int y) { if(x > y) return x; else returny; }C. int max(int x, int y) { return x > y ? y : x; }D. int max(int x, int y) { if(x > y) return y; else returnx; }答案:A二、填空题(每题2分,共20分)1. 在C语言中,若要定义一个整型变量x并初始化为10,应使用语句:________。
2009级C语言程序设计期末考试试题答案一、选择题(15分,每题1分)1—5、C A A A A 6-10、 B C A D D11-15 B A D D C二、判断题(正确的打√,错误的打×,每题1分,共10分)1、√2、×3、×4、√5、√6、×7、×8、√9、×10、√三、阅读程序,写出程序的执行结果(10个小题,每题2。
5分,共25分)1、hello2、2, 2,23、p=104、4,35、a1=1 x1=3 x2=3 x3=46、t=10,row=2,column=17、007.58、12 15 189、1,210、10,2020,10四、程序填空,(每空2分,共30分)【1】〈.stdio.h>【2】x>0【3】x<amin【4】<0【5】i【6】float item,sum【7】&n【8】item=item/i【9】return (1)【10】n*fac(n—1)【11】math。
h【12】m〈200;m++【13】j〈=root【14】break【15】k%10==0五、编程题(2个小题,共20分)1、#include <stdio。
h〉#include <math。
h>int main(){int i;for(i=100;i〈1000;i++)if(flower(i)==1)printf(“%d is a flower—number”, i);return 0;}int flower( int n){int a,b,c,s;a=n/100;b=(n-100*a)/10;c=n%10;s=pow(a,3.0)+pow(b,3。
0)+pow(c,3。
0);if(s==n)rerutn(1);else return (0);}2、选择排序main(){int i;int a[10];for(i=0;i<10;i++)scanf(“%d" &a[i]);selectsort(a,10);for(i=0;i<10;i++)printf(“%d" a[i]);}void selectsort(int s[ ],int n){int i,j,k,t;for(i=0;i〈n—1;i++){ k=i;for(j=i+1;j〈n;j++)if(s[j]〈s[k]) k=j;if(k!=i){t=s[k]; s[k]=s[i];s[i]=t;}}}冒泡排序#include <stdio。
一、单项选择1.中央处理器(CPU)包括A.控制器和内存 B .制器和内存器C.运算器和内存 D .硬盘和控制器2.计算机的主存储器包括A.RAM和C盘 B .ROM和C磁盘C . ROM和RAMD .硬盘和控制器3.计算机中数据的表示形式是A.二进制B.八进制C.十进制 D.十六进制4在微型计算机中,2048*2048的字节准确等于A.1MBB.2MBC.3MBD.4MB5.八进制整数157化为二进制数是A.1101010B.1101000C. 1101111D.10101016.在Windows应用环境中,选中窗口全部对象的组合键是A.<Alt>+AB.<Ctrl>+AC.<Alt>+<Shift>+AD.<Shift>+A7.Windows中,文件扩展名通常表示A.文件的类型B.文件的大小C. 文件的版本D.文件的修改时间8.在Windows移动普通窗口的方法是使用鼠标拖动A.滚动条B.菜单栏C.工具栏D.标题栏9.在Windows中剪贴板是A.硬盘上的一块空间B.U盘上的一块空间C.Cache中的一块空间D.内存中的一块空间10.在Windows中,关闭窗口的操作是双击A.窗口控制图标B.标题栏C.菜单栏D.工具栏11.在Windows的“资源管理器”的窗口右部,若单击了第一个文件,有按住<Ctrl>键并开始单击第七个文件,则A.在0个文件被选中B.有1个文件被选中C.有2个文件被选中D.有7个文件被选中12.Word文档文件默认的扩展名是A.TXTB.DOSC.WPSD.WAV13.Word文档编辑过程中,为防止突然断电等意外操作造成丢失数据,应经常单击工具栏上的保存按钮或快捷键A.<Art>+SB.<Alt>+CC. <Ctrl>+CD.<Ctrl>+S14.保存Word文档时系统默认的保存路径是A.My DocumentsB.我的公文包C.WindowsD.Wrod15.Word程序中允许打开多个文档,可以实现文档窗口之间切换的菜单是A.编辑B.窗口C.视图D.工具16.Excel中,下列输入数据属于字符型的是A.+J1+7B.=SUM(J1:Y1)C.’SUM(P1,P7)D.=P7+717.以下说法错误的是A.Excel文件的扩展名是.XSLB.Excel是电子表格软件C.Excel属于OfficeD.Excel可以在Windows环境下运行18.在Excel中,若要对几个数值求平均值,选用函数是A.SUMB.AVERAGEC.MAXD.COUNT19.局域网的英文缩写是A.WANB.ISDNC.WWWN20.下列各种网络拓扑结构中,共享资源能力最差的是A.网状结构B.树状结构C.总线结构D.星型结构21若在说明语句:int i=9,j:则执行语句j=(i++)+(++i);后j的数值是A.18B.19C.20D.2222.设有如下定义:int x=10,y =3;则语句printf(”%d”,(x%y));的输出结果是A.0B.1C.4D.323.”A”和在计算机内存中分别占用的字节数是A.2,1B.1,1C.1,2D.2,224.若已定义char a[10];则下面表达式中不能表示a[1]地址的是A.a+1B.a++C.&a[0]+1D.&a[1]25.设有定义:int a=1,b=2,c=3,d=4;,则printf(”%d”,a<b?c:b);的输出结果是A.1B. 2C.3D.426.C语言中运算数必须是整形的运算符是A./B.%C.>=D.+27.C语言中,可以用来定义多个不同类型变量值的数据类型是A.数组B.结构体C.指针D.权举28.程序设计的三种结构是A.顺序结构、分支结构、选择结构B.顺序结构、递归结构、选择结构C.顺序结构、循环结构、逻辑结构D.顺序结构、循环结构、选择结构29.字符串常量”\\ab\’dtd"的长度是A.5B.7C.8D.930.若有如下定义,则sizeof(struct stu)的数值是Struct sut{ int i;Char ch[5]}a;A.2B.5C.6D.7二.阅读程序题(本题共10小题,每小题3分,共30分)1. main( ){int x=4;printf(“%d”, x+=x-=x*x);}2. int x=4,y=5;main( ){int x=6, y=7;printf(“%d,%d\n”,x,y);}3. main( )int i,s=0;for(i=1;i<6;i++){switch(i){case 1: s=1;case 2: s+=3; break;case 3: s==4;default : s+=2;}}printf(“%d\n”, s);}4.int fun(int x){static int m=1;m*=x;return m;}main( ){int i,s=0;for(i=1;i<3;i++)s+=fun(i);printf(“%d\n”,s);}5. main( ){int a=8,b=10,c=6;if(a<b)if(b<1) c=0else c++;printf(“%d\n”,c);}6. #define m(x,y,z) x*y-zmain( ){int a=2,b=3,c=4,y;y= M(a,b+c,c+b);printf(“%d\n”,y);}7. main( ){int a[ ]={1,2,3,4,5,6}, *p;p=a;*(p+2)+=4;printf(“%d,%d \n”, *p,*(p+2));}8. main( ){int num[3][3]={0,1,2,0,1,2,0,1,2},I,j,t=0;for(i=0;i<3;i++)for(j=0;j<=i;j++)t=t+num[i][num[[j][j]];}三.完善程序题(本小题共10小题,每小题2分,共20分)将下列程序________的内容填写到答题纸上对应题号处,使程序完整、正确。
2009~2010学年第二学期C语言期末考试卷答案(A卷)专业班级:学号:姓名:一、选择题(用铅笔把选中的方格涂黑20×1=20分)1 2 3 45 6 7 89 10 11 1213 14 15 1617 18 19 20二、填空题(每空占一行,每行写一个答案 15×2=30分)1. 42. a<b? a:b3. pow(x+y,1.0/3)4. a-b==b-c5. a*b!=0 或 a*b6. 11,67. 27\n8. 69. 100 10. 4911. windows 9x12. 9x13. string.h14. a[k].b 或 (a+k)->b15. a、b为同类型的结构体变量三、阅读程序题(每空2分,共20分)1. 2 1 12. 3 2 13. 5 3 24. 305. 2 66. 197. 08. 79. 4 10. ga四、完善程序题(每空2分,共12分)1. ″%d%d ″,&m,&n2. gbs%n!=03. m*n/gbs4. p1->next!=NULL5. n==p1->num6. p2->next=p1->next五、编程题(第1小题9分,共18分)1.编程,输入a 1、a 2、...、a 15后,计算下列表达式的值并输出。
1111111231415++++⋅⋅⋅++a a a a a.#include <stdio.h> void main(){ float a [15],y; int i;for(i=0;i<15;i++) scanf(″%f ″,a+i);y=a [14];for(i=13;i>=0;i --) y=1+a [i ]/(1+y); printf(″%f \n ″,y); }2.把文本文件x1.dat 复制到文本文件x2.dat 中,要求仅复制x1.dat 中的非空格字符。
C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
第十五届全国青少年信息学奥林匹克联赛初赛试题(提高组 C语言二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一.单项选择题(共10题,每题1.5分,共计15分。
每题有且仅有一个正确答案。
)1、关于图灵机下面的说法哪个是正确的:A)图灵机是世界上最早的电子计算机。
B)由于大量使用磁带操作,图灵机运行速度很慢。
C)图灵机只是一个理论上的计算模型。
D)图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作用。
2、关于BIOS下面的说法哪个是正确的:A)BIOS是计算机基本输入输出系统软件的简称。
B)BIOS里包含了键盘、鼠标、声卡、图形界面显器等常用输入输出设备的驱动程序。
C)BIOS一般由操作系统厂商来开发完成。
D)BIOS能提供各种文件拷贝、复制、删除以及目录维护等文件管理功能。
3、已知大写字母A的ASCII编码为65(十进制),则大写字母J的十六进制ASCII编码为:A) 48 B) 49 C) 50 D) 以上都不是4、在字长为16位的系统环境下,一个16位带符号整数的二进制补码为1111111111101101。
其对应的十进制整数应该是:A)19 B) -19 C) 18 D) -185、一个包含n个分支结点(非叶结点)的非空满k叉树,k>=1,它的叶结点数目为:A) nk + 1 B) nk-1 C) (k+1)n-1 D. (k-1)n+16. 表达式a*(b+c)-d的后缀表达式是:A) abcd*+-B) abc+*d-C) abc*+d-D) -+*abcd7、最优前缀编码,也称Huffman编码。
这种编码组合的特点是对于较频繁使用的元素给与较短的唯一编码,以提高通讯的效率。
下面编码组合哪一组不是合法的前缀编码。
A)(00,01,10,11)B)(0,1,00,11)C)(0,10,110,111)D)(1,01,000,001)8、快速排序平均情况和最坏情况下的算法时间复杂度分别为:A) 平均情况O(nlog2n),最坏情况O(n2)B) 平均情况O(n),最坏情况O(n2)C) 平均情况O(n),最坏情况O(nlog2n)D) 平均情况O(log2n),最坏情况O(n2)9、左图给出了一个加权无向图,从顶点V0开始用prim算法求最小生成树。
A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)(2)算法的时间复杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。
详细设计属于A)定义阶段B)开发阶段C)维护阶段C)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:R TA)选择B)投影C)交D)并A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是A)_1B)AaBcC)a_bD)a--b(14)若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序#include<stdio.h>main(){char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar();d=getchar;printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是A)1234B)12C)12D)12334(16)以下关于C语言数据类型使用的叙述中错误的是A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==I)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b;else a++;语句功能不同的switch语句是A)switch(a){case1:a=b;break;default:a++;}B)switch(a==1){case0:a=b;break;case1:a++;}C)switch(a){default:a++;break;case1:a=b;}D)switch(a==1){case1:a=b;break;case0:a++;}(19)有如下嵌套的if语句if(a<b)if(a<c) k=a;else k=c;if(b<c) k=b;else k=c;以下选项中与上述if语句等价的语句是A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b)((b>c)?b:c);C)k=(a<b)?((a<c)?a:c)((b<c)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序#include<stdio.h>main(){int i,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i+j>3) break;m*=i*j;}}printf(“m=%d\n”,m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include<stdio.h>main(){int a=1,b=2;for(;a<8;a++) { b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include<stdio.h>main(){int k=011;printf(“%d\n”,k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返同到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008 int num[N];D)#define N 2008 int num[N];(26)有以下程序#include<stdio.h>void fun(char *c,int d){*c=*c+1;d=d+1;printf(“%c,%c”,*c,d);}main(){char b=‘a’,a=‘A’;fun(&b,a);printf(“%c,%c\n”,b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元索a[3]的是A)(*s)[3] B) *(s+3)C)*s[3] D) *s+3(29)有以下程序#include<stdio.h>main(){int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=1;i<3;i++) s=s+a[b[i]];printf(“%d\n”,s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include<stdio.h>main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=1;i<3;i++)for(j=1;j<=1;j++) t+=b[i][b[j][i]];printf(“%d\n”,t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!", s2="\n123\\";printf("%d%d\n",strlen(s1),strlen(s2));则输出结果是A)55B)105C)107D)58(32)有以下程序#include<stdio.h>#define N 8void fun(int *x,int i){*x=*x+i;}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2); for(i=1;i<N/2;i++){printf(“%d”,a[i]);}printf(“\n”);}程序运行后的输山结果是A)1313B)2234C)3234D)1234(33)有以下程序#include<stdio.h>int f(int t[],int n);main(){int a[4]={1,2,3,4},s;s=f(a,4);printf(“%d\n”,s);}int f(int t[],int n){if (n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)10C)14D)6(34)有以下程序#include<stdio.h>int fun(){static int x=1;x*=2;return x;}main(){int i,s=1;for(i=1;i<=2;i++) s=fun();printf(“%d\n”,s);}程序运行后的输出结果是A)0B)1C)4D)8(35)有以下程序#include<stdio.h>#define SUB(a) (a)-(a)main(){int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%d\n”,d);}程序运行后的输山结果是A)0B)-12C)-20D)10(36)设有定义:struct complex{int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include<stdio.h>#include<string.h>struct A{int a;char b[10];double c;};void f(struct At);main(){struct Aa={1001,“ZhangDa”,1098.0};f(a);printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);}void f(struct At){t.a=1002;strcpy(t.b,“ChangRong”);t.c=1202.0;}输出结果是A)1001,ZhangDa,1098.0B)1002,ChangRong,1202.0C)1001,ChangRong,10980D)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day;int month;int year;}s};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A) pw.year=1980;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include<stdio.h>main(){int a=2,b=a,c=2;printf(“%d\n”,a/b&c);}程序运行后的输出结果是A)0B)1C)2D)3(40)有以下程序#include<stdio.h>main(){FILE *fp;char str[10];fp=open(“myfile.dat”,“w”);fputs(“abc”,pf);close(pf);fp=open(“myfile.dat”,“a+”);fprintf(pf,“%d”,28);rewind(pf);fscanf(pf,“%s”,str);puts(str);close(pf);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
答案部分
NOIP2009年普及组(C++语言)参考答案与评分标准
一、单项选择题:(每题1.5分)
1.D
2.B
3.A
4.A
5.B
6.D
7.C
8.B
9.C10.D
11.C12.C13.B14.D15.D
16.B17.D18.A19.C20.B
二、问题求解:(共2题,每空5分,共计10分)
1.70
2.5
三、阅读程序写结果(共4题,每题8分,共计32分)
1.4
2.416
3.782
4.NPOI
四.完善程序(前8空,每空3分,后2空,每空2分,共28分)
(说明:以下各程序填空可能还有一些等价的写法,各省可请本省专家审定和上机验证,不一定上报科学委员会审查)
1.
①0
②tmp+a[i]==ans或者a[i]+tmp==ans或者ans==a[i]+tmp等
③<0
④i
⑤tmp+=a[i]或者tmp=tmp+a[i]
2.
①0
②hash[i][j]++或者hash[i][j]=hash[i][j]+1或者
++hash[i][j]
③work(x,y,tot+1)
④hash[i][j]--或者hash[i][j]=hash[i][j]-1或者
--hash[i][j]
⑤work(0,0,0)
注意:②④两空,不一定要++或者--。
也可以是④--,②++.也可以是+=k,也可以-=k,甚至任何加标记的操作(如位运算)都可以,只要相互撤销。
(所以答案非常多)。
习题与参考答案第1章 C语言程序设计基础思考与练习一、填空题1、C程序是由构成的,一个C程序中至少包含。
2、C程序的注释是由和所界定的文字信息组成的。
3、开发一个C程序要经过编辑、、和运行4个环节。
4、C语言中,头文件的扩展名是。
5、C语言源程序的扩展名;经过编译后,生成文件的后缀是;经过连接后,生成文件的扩展名是。
二、简答题1、简述C语言程序的运行步骤。
2、软件编程中的可读性原则一般包括那些内容?3、什么是算法?算法的特点有哪些?4、参照本章例题,编写一个C程序,输出以下内容。
**************************************************Hello,world!**************************************************5、写出算法。
已知圆的半径,求周长和面积。
第1章思考与练习参考答案一、填空题1、函数、一个主函数main()2、/*、*/3、编译、连接4、.h5、.c、.obj、.exe二、简答题1、简述C语言程序的运行步骤。
答:(1)编辑C程序源文件;(2)编译,将编辑好的源程序文件“*.c”,翻译成二进制目标代码文件“*.obj”;(3)连接,将编译生成的各个目标程序模块和系统或第三方提供的库函数“*.lib”连接在一起,生成可以脱离开发环境、直接在操作系统下运行的可执行文件“*.exe”;(4)运行程序。
如果运行出错,这说明程序处理的逻辑存在问题,需要再次回到编辑环境针对程序出现的逻辑错误进一步检查、修改源程序,重复编辑→编译→连接→运行的过程,直到取得预期结果为止。
2、软件编程中的可读性原则一般包括那些内容?答:1.编程规范概要(1)程序结构清晰,简单易懂,单个函数的程序行数不得超过100行。
(2)打算干什么,要简单,直截了当,代码精简,避免垃圾程序。
(3)尽量使用标准库函数和公共函数。
(4)不要随意定义全局变量,尽量使用局部变量。
09年专升本C考题解答(共100分)一、单项选择题(30小题,每小题2分,共60分)1、下列选项中,合法的C语言标识符是()。
A. my_nameB. $234C. my nameD. 23b标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。
标识符不能使用C语言的关键字(见教材后清单)2、已知:int x=5; 执行完printf(“%d”, ++x);后。
输出的结果是()。
A. 4B. 5C. 6D. 不确定注意++x和x++的区别3、已知:int x=5,y=3; 则逻辑表达式(x-y)&&(y-3)的值为()。
A. 7B. 2C. 1D. 0 (x-y)&&(y-3)=(5-3) && (3-3) =2 && 0 =04、已知:int a=3,b=6,c=8; 则执行完语句:a=a>b?a: (b<c?b:c); 后,a的值为()。
A. 3B. 6C. 8D. 17 a=a>b?a: (b<c?b:c)= 3>6?a: (6<8?b:c) = 65、如下程序执行后的结果是()。
main(){ int a=11, b=3;printf(“%d, %d”, a/b, a%b);}A. 3,2B. 11,2C. 3,3D. 3.3,2 a/b=11/3=3(整除), a%b=11%3=26、如下程序运行时输入“B回车”,输出结果是()。
mian(){ char c;scanf (“%c”, &c);switch (c){ case …A‟: printf(“5”);case …B‟: printf(“4”);case …C‟: printf(“3”);case …D‟: printf(“2”);default: printf(“1”);}}A. 4B. 43C. 432D. 4321注意没有break语句7、已知字符‟a‟的ASCII码为97,‟A‟的ASCII码为65,则如下程序的运行结果是()。
2009计算机二级c语言考试真题及答案一、单项选择题(每题2分,共40分)1. 在C语言中,下列关于变量声明的描述中,错误的是:A. 变量可以在函数内部声明B. 变量可以在函数外部声明C. 变量必须在函数内部声明D. 变量可以在语句中声明答案:C2. 若有定义:int a=5, b=10;,则表达式a+=b的值是:A. 15B. 5C. 10D. 0答案:A3. 在C语言中,下列关于数组的描述中,正确的是:A. 数组名代表数组中第一个元素的地址B. 数组名代表数组中最后一个元素的地址C. 数组名代表数组的总大小D. 数组名代表数组中所有元素的地址答案:A4. 下列关于指针的描述中,错误的是:A. 指针变量可以被赋值为一个变量的地址B. 指针变量可以被赋值为一个常量的值C. 指针变量可以被赋值为另一个指针变量的值D. 指针变量不能被赋值为一个函数的地址答案:D5. 在C语言中,下列关于函数的描述中,正确的是:A. 函数可以没有返回值B. 函数可以返回多个值C. 函数可以没有参数D. 函数必须有返回值答案:C6. 若有定义:char str[10]="hello";,则下列关于str数组的描述中,正确的是:A. str数组的长度为5B. str数组的长度为10C. str数组的内容为"hello"D. str数组的内容为"hello\0"答案:B7. 在C语言中,下列关于结构体的描述中,错误的是:A. 结构体可以包含不同类型的数据B. 结构体可以包含其他结构体C. 结构体不能包含函数D. 结构体可以包含指针答案:C8. 下列关于预处理指令的描述中,正确的是:A. #include <stdio.h> 是一个宏定义B. #define PI 3.14159 是一个条件编译指令C. #ifdef 是一个文件包含指令D. #pragma 是一个编译器指令答案:D9. 在C语言中,下列关于文件操作的描述中,错误的是:A. 使用fopen函数打开文件B. 使用fclose函数关闭文件C. 使用fread函数读取文件D. 使用fwrite函数写入文件答案:C10. 下列关于位运算的描述中,错误的是:A. & 表示按位与运算B. | 表示按位或运算C. ^ 表示按位异或运算D. ~ 表示按位非运算答案:D二、程序填空题(每空2分,共20分)给定以下程序片段,请在空白处填入正确的代码:```c#include <stdio.h>int main() {int a, b, sum;scanf("%d %d", &a, &b);sum = a + b;printf("Sum is: %d\n", sum);return 0;}```若要计算两个数的乘积,需要修改程序中的哪几行代码?答案:将第4行的 `sum = a + b;` 修改为 `sum = a * b;`。
2009年12月C语言程序设计等级考试大题参考答案一、改错题#include<stdio.h>void main(){ int a,b,c;/**/ int f; /**/ 改为:float f;clrscr();printf("Please input a b :");scanf("%d%d",/**/a,b/**/); 改为:&a, &bf=/**/ a/b; /**/ 改为:(float)a/b; 或1.0*a/b;c=(int)((f-(int)f)*10);printf("\n%f %d\n",f,c);getch();}#include <stdio.h>void find(/**/ n /**/) 改为:int n{ int a1,a2;a1=m%10;a2=m/10;if(m%3==0 &&(/**/ a1==4 && a2==4 /**/)) 改为:a1= = 4 || a2= = 4 printf("%d\n",m);}void main(){ int k;for(k=10;k<=99;k++)/**/ fun( k ) /**/; 改为:find( k )getch();}#include<stdio.h>void main(){ /**/ int a,Tag; /**/ 改为:int a,tag;int num1=0,num2=0;clrscr();printf("please input numbers :");scanf("%d",/**/ a /**/); 改为:&atag=a;/**/ if(a) /**/ continue; 改为:if (a==0) else if(a<tag) num1++;else if(a>tag) num2++;}printf("\n%d %d\n",num1,num2);getch();}#include <stdio.h>long int fsum(int n){long int k;if(n==1)/**/ k=0 /**/; 改为:k=1elsek=n*fsum(n-1);return (/**/ 1 /**/); 改为:k}void main(){ int i;long int sum;sum=0;for(i=1;i<=9;/**/ i++;i++ /**/) 改为:i++,i++ 或i=i+2 sum+=fsum(i);printf("sum=%ld\n",sum);getch();}#include<stdio.h>void main(){ int i,a=0;/**/ c1,c2; /**/ 改为:char c1,c2; clrscr();printf("Enter an 8 bit binary number :");c2=getchar();/**/ for(i=1,i<=7;i++) /**/ 改为:for(i=1;i<=7;i++) { c1=getchar();a=a*2+c1-'0';}/**/ If (c2) /**/ a=(-1)*a; 改为:if (c2==‘1’) printf("\n%d \n",a);getch();#include<stdio.h>void main( ){ int i,n;/**/ n = 1; /**/ 改为:n=0for(i=10;i<=100;i++)if(i/10==i%10){printf("%5d",i);n++;if(/**/ n%9=0 /**/) 改为:n%9==0printf("\n");}for(i=100;i<=999;i++)if(/**/ i/100==i/10 /**/) 改为:i/100==i%10{printf("%5d",i);n++;if(n%9==0)printf("\n");}getch();}#include <stdio.h>void main(){ /**/ int a(10); /**/ 改为:int a[10];int i,j,k,x;printf("Enter 10 numbers:");scanf("%d",/**/ x /**/); 改为:&xa[0]=x;for(k=1;k<=9;k++){ scanf("%d",&x);for(i=0;i<k;i++)if (a[i]>x) break;if(i<k)for(j=k;j>i;j--) a[j]=a[j-1];a[i]=x;}/**/ for(i=1;i<=10;i++) /**/ 改为:for(i=0;i<=9;i++) printf("%d ",a[i]);printf("\n");getch();}#include <stdio.h>#include <math.h>int fun( /**/ float a, b, c /**/) 改为:float a, float b, float c{ float t;int mk = 0;if(c<a){ t = a; a = c; c = t; }if(c<b){ t = b; b = c; c = t; }if( fabs( c*c - (a*a+b*b)) < 1.0e-8)mk = 1;/**/ return (1); /**/ 改为:return (mk);}main(){float a,b,c;printf("Please input three numbers(a b c):\n");scanf("%f%f%f",&a,&b,&c);if(/**/ fun(a b c) /**/== 1) 改为:fun(a, b, c)printf("Yes\n");elseprintf("No\n");getch();}#include <stdio.h>void main(){ int a[10]={0};/**/ int i, j, k,temp, /**/ 改为:int i, j, k,temp;printf("Enter 10 numbers:");/**/ for(k=1;k<10;k++) /**/ 改为:for(k=0;k<10;k++)scanf("%d",&a[k]);for(i=0;i<9;i++){ k=i;for(j=i+1;j<10;j++){ if(a[k]>a[j])k=j;}if(k!=i)/**/ {temp=a[i];a[k]=a[i];a[i]=temp;} /**/ 改为:{temp=a[k];a[k]=a[i];a[i]=temp;} }for(i=0;i<10;i++)printf("%d ",a[i]);#include <stdio.h>void main(){float a,b,c,max;float fmax(float,float,float);printf("Please input 3 numbers:\n");scanf("%f%f%f",&a,&b,&c);max=/**/ fmax(a;b;c) /**/; 改为:fmax(a, b, c)printf("The max number is:%.2f\n", max);getch();}/**/float fmax(float x, y, z) /**/ 改为:float fmax(float x, float y, float z) {float m1,m2;m1=(y>z)?y:z;m2=/**/ (x>y)?x:y; /**/ 改为:(x>m1)?x:m1;return(m2);}#include <stdio.h>void main(){ int a[20]={1,3,7,9,12,14,23,26,34,43,45,47,49,56,58,59,78,79,87,89};int left,right,mid,q,count;left=0 ;/**/ right = 19 /**/ 改为:right = 19;printf("please input a number:");scanf("%d",/**/ q /**/); 改为:&qcount=1;while(left<=right){ mid= ( left + right)/2 ;if(q==a[mid]) break;else if(q<a[mid]) right = mid-1;else left = mid+1;/**/ count--; /**/ 改为:count++;}if(left<=right)printf("%d %d\n",mid,count);else#include <stdio.h>#include <math.h>int fun(/**/ float r, x, y /**/) 改为:float r, float x, float y{ if ( sqrt(x*x+y*y) < r )return ( 1 );else 0 return (/**/ -1 /**/ ); 改为:0}void main(){ float r=-1,x,y;int bIn;while(r<0){printf("Please input radius r (r>0):\n");scanf("%f", &r);}printf("Please input the dot(x,y):\n");scanf("%f%f",&x,&y);bIn = fun(r,x,y);if(/**/ bIn = 0 /**/) 改为:bIn != 0 或bIn ==1 printf("in the circle!\n");elseprintf("out of the Circle!\n");getch();}二、填空题#include <stdio.h>#include <conio.h>void main(){ /**/ int/**/ a,b,temp;scanf("%d,%d",&a,&b);if (a<b){ /**/temp=a;a=b;b=temp;/**/}while /**/(--a>b)/**/{ if(a%3==0)printf("\n");getch();}#include <stdio.h>double fun(/**/ int n /**/){ double y = 0.0;int i,j;for(i=1;i<=n;i++){y = y +/**/ 1.0/(8+3*i) /**/;}return (/**/ y/**/);}void main(){ clrscr();printf("fun(7) = %8.3lf\n", fun(7));getch();}#include <stdio.h>void main(){int m,n;for(m=1; /**/m<=5 ; /**/ m++){ printf("\n");for(n=1;n<= /**/ m-1;/**/ n++)printf(/**/““/**/);for(n=9;n>=m*2-1;n--)printf("* ");}getch();}#include <stdio.h>main()int v=300;fun(/**/ v /**/);getch();}void fun(int m){int c1,c2;for(c1=1;/**/ c1<=30;/**/ ;c1++){ for(c2=1;c2<=15;c2++)if(c1*10+c2*20==/**/ m/**/ )printf("c1=%d,c2=%d\n",c1,c2);}}#include <stdio.h>#include <conio.h>void main(){int num1,num2,ans,flag;char op;clrscr();printf("Please input an expression:");scanf("%d%c%d", /**/ &num1,&op,&num2 /**/); flag=0;/**/ switch(op)/**/{case '+': ans=num1+num2; break;case '-': ans=num1-num2; break;case '*': ans=num1*num2; break;case '/': ans=num1/num2; break;default:{ printf("Error!\n"); flag=1; }}if /**/(flag = =0) /**/printf("%d %c %d = %d\n",num1,op,num2,ans);getch();}#include <stdio.h>{ char src[40],tag[40];void ch_pw( );printf("Please input a string: ");gets(src);strcpy(tag,src);ch_pw( tag );printf("\nThe source string: %s\n",src);printf("\nThe target string: %s\n",tag);getch();}void ch_pw(/**/ char str[ ] /**/){ char tab[4][2]={{'a','d'},{'s','f'},{'d','a'},{'f','s'}}; int j=0,i;while( str[j] ){for(i=0;i<=3;i++){ if(str[j]==tab[i][0]){ /**/ str[j]/**/=tab[i][1] ;break;}}/**/ j++;/**/ ;}}#include <stdio.h>#include <string.h>void main(){ char str[80];char c;int i;/**/ i=0; /**/printf("\nPlease input the string: ");while((c=getchar())!='\n'){if(c>='A'&&c<='Z'||c>='a'&&c<='z')/**/ str[i++]=c; /**/}str[i]= /**/ 0; (或者: ’\0’ ;)/**/puts(str);getch();}#include <stdio.h>#include <math.h>#define N 9void ivs(int a[ ]){int i,temp;for(i=0;/**/ i<N/2; /**/;i++){temp=a[i];a[i]=a[N-1-i];/**/ a[N-1-i]=temp; /**/;}}void main(){int arr[N],i;printf("Please input %d numbers:\n",N);for(i=0; i<N; i++)scanf("%d", &arr[i]);ivs(/**/ arr /**/);printf("\nInverse order is: \n");for(i=0; i<N; i++)printf("%d ", arr[i]);printf("\n" );getch();}#include <stdio.h>#include <string.h>void main(){ /**/ char /**/ str[80];int i,len, sum=0;printf("\nPlease input the string: ");gets(str);len = strlen(str);for(i=0; i<len; i++){ if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z') /**/ continue; /**/else/**/ sum++; /**/}printf("%d\n",sum);#include <stdio.h>#include <conio.h>void main(){ int hcf(int,int);int a,b,k;printf("Enter a b: ");scanf("%d%d",&a,&b);k=hcf(/**/a, b /**/);printf("H.C.F=%d \n", k);getch();}int hcf(int x,int y){ int r;r=x%y;while( r!=0 ){ x=y;y=/**/ r /**/;r=x%y ;}return (/**/ y /**/);}#include <stdio.h>#include <string.h>void main(){char s1[100], s2[100];int i,len;printf("Please input string: \n");gets(s1);len = strlen(s1);for(i=0; i<len; i++){if( s1[i] >= '1' && s1[i] <= '9')/**/ s2[i]=s1[i]-1; /**/ else if( s1[i] == '0' )/**/ s2[i]=’9’; /**/ elses2[i] = s1[i];}s2[i] =/**/ 0 (或者: ’\0’ )/**/; puts(s2);getch();}#include <stdio.h>#include <string.h>void sct(char s1[],/**/char s2[] /**/) {char * p1,*p2;p1=/**/ s1 /**/;p2=s2;while(*p1)p1++;while(*p2)*(p1++) = *(p2++);}void main(){ char str1[60]="Nothing ", str2[]="final";sct(/**/ str1 /**/ ,str2);printf("\n%s\n",str1);getch();}三、编程题#include <math.h>#include <stdio.h>double func(double x){ /**/ double y;y=(3*x*sin(x)+tan(x))/(1.5+fabs(x));return y;/**/}void main(){ clrscr();printf("func(0.26) = %6.3lf\n", func(0.26)); printf("func(5.00) = %6.3lf\n", func(5.00)); printf("func(8.50) = %6.3lf\n", func(8.50)); getch();}#include <stdio.h>int fun(int a[],int n,float *f){ /**/ int i,t=0 ;for(i=0;i<n;i++)*f=*f+a[i];*f=*f/n;for(i=0;i<n;i++)if(a[i]>*f)t++;return t;/**/}void main(){ int a[] = {23,40,8,32,18,2,9,16,27};int i,k = sizeof(a)/sizeof(int);int count=0;float aver=0.0;printf("Array a:\n");for(i=0;i<k;i++)printf("%d ",a[i]);printf("\n");count=fun(a,k,&aver);printf("aver is %f, count is %d\n",aver,count); getch();}#include <math.h>#include <stdio.h>double func(double x){ /**/double y;y=(exp(x)+sin(x-6))/(x*x+1);return y; /**/}void main(){ clrscr();printf("func(0.26) = %6.3lf\n", func(0.26)); printf("func(5.00) = %6.3lf\n", func(5.00)); printf("func(8.50) = %6.3lf\n", func(8.50)); getch();}#include <stdio.h>#include <math.h>int find(int a[],int n,float x){ /**/int i ,t; float min=fabs(x-a[0]);for(i=1;i<n;i++)if(fabs(x-a[i])<min){ min=fabs(x-a[i]);t=a[i];}return t; /**/}void main(){ int a[] = {23,40,8,32,18,2,9,16,27}; int i,k,n = sizeof(a)/sizeof(int);float x=20.3;printf("Array a:\n");for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");k=find(a,n,x);printf("It is %d\n",k);getch();}#include <stdio.h>#include <math.h>double fun1(float x){ /**/ double y;if(x<3)y=sin(x);else if(x==3)y=x;elsey=cos(2*x+1);return y; /**/}void main(){ float x;double y;clrscr();printf("Please input a number:\n"); scanf("%f",&x);y = fun1(x);printf("fun1(%.2f)=%.2f\n",x,y); getch();}#include <stdio.h>#include <math.h>int fun(int bg,int fn){ /**/int i , j, t=0;for(i=bg;i<=fn;i++){ for(j=2;j<i/2;j++)if(i%j==0)break;if(j>=i/2)t++;}return t;/**/}void main(){ int count;count=fun(100,500);printf("\nThe total of prime is %d",count); getch();}#include <stdio.h>#include <math.h>double fun1(float x){ /**/ double y;if(x<3)y=pow(2.5+fabs(x),1.0/3)/(sin(x)+3);elsey=x;return y; /**/}void main(){ float x;double y;clrscr();printf("Please input a number:\n");scanf("%f",&x);y = fun1(x);printf("fun1(%.2f)=%.2f\n",x,y);getch();}#include <stdio.h>double fun(int n){ /**/ int i ; double k=1.0,s=0;for (i=1;i<=n;i++){ s+=k/(i*(2*i+1)) ;k=-k;}return s;/**/}void main(){ int n;printf("Input n: ");scanf("%d",&n);printf("fun(%d)=%lf\n",n,fun(n));getch();}#include <stdio.h>#include <math.h>double fun1(float x){ /**/ double y;if(x<10)y=sqrt(2.5+cos(x))/(x*sin(x)+3);elsey=x*x;return y;/**/}void main(){ float x;double y;clrscr();printf("Please input a number:\n"); scanf("%f",&x);y = fun1(x);printf("fun1(%.2f)=%.2f\n",x,y); getch();}#include <stdio.h>#include <math.h>int bTrue(int a[][4],int n){ /**/int i, j, t=1;for(i=0;i<n&&t!=0;i++)for(j=0;j<n;j++)if(a[i][j]!=a[j][i])t=0;return t;/**/}void main(){ int a[4][4],i,j;int bT;printf("Input array a:\n");for(i=0; i<4; i++)for(j=0; j<4; j++)scanf("%d",&a[i][j]);bT = bTrue(a,4);if( bT == 1 )printf("Yes\n");elseprintf("No\n");getch();}#include <stdio.h>#include <math.h>double fun1(float x){ /**/ double y;if(x<100)y=(3*log10(x)-3)/(sin(x)+3);elsey=x-100;return y; /**/}void main(){ float x;double y;clrscr();printf("Please input a number:\n"); scanf("%f",&x);y = fun1(x);printf("fun1(%.2f)=%.2f\n",x,y); getch();}#include <stdio.h>#include <math.h>int fun(int a[],int n){ /**/ int i,t=a[0];float avg=0, max;for(i=0;i<n;i++)avg+=a[i];avg=avg/n;max=fabs(a[0]-avg);for(i=1;i<n;i++)if(fabs(a[i]-avg)>max){ max= fabs(a[i]-avg);t = a[i];}return t;/**/}void main(){ int a[] = {10,22,8,33,17,5,9,13,27}; int i,n = sizeof(a)/sizeof(int);int k;printf("Array a:\n");for(i=0;i<n;i++)printf("%d ",a[i]);printf("\n");k=fun(a,n);printf("It is %d\n",k);getch();}。