c语言考试程序填空题 设计一个程序

京 东 价:
[定价:¥]
PLUS会员专享价
您购买此商品可享受专属价
增值业务:
重  量:
搭配赠品:
服务支持:
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
全国计算机等级考试二级教程:C语言程序设计(2015年版)
商品介绍加载中...
扫一扫,精彩好书免费看
京东商城向您保证所售商品均为正品行货,京东自营商品开具机打发票或电子发票。
凭质保证书及京东商城发票,可享受全国联保服务(奢侈品、钟表除外;奢侈品、钟表由京东联系保修,享受法定三包售后服务),与您亲临商场选购的商品享受相同的质量保证。京东商城还为您提供具有竞争力的商品价格和,请您放心购买!
注:因厂家会在没有任何提前通知的情况下更改产品包装、产地或者一些附件,本司不能确保客户收到的货物与商城图片、产地、附件说明完全一致。只能确保为原厂正货!并且保证与当时市场上同样主流新品一致。若本商城没有及时更新,请大家谅解!
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
印刷版次不同,印刷时间和版次以实物为准。
价格说明:
京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。
划线价:商品展示的划横线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
浏览了该商品的用户还浏览了
加载中,请稍候...
七日畅销榜
新书热卖榜
iframe(src='///ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
C语言程序设计试卷A卷(正式用卷).doc 12页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:180 &&
C语言程序设计试卷A卷(正式用卷)
你可能关注的文档:
··········
··········
计算机学院学年第2学期C语言程序设计考试试卷
A卷(或B卷): A卷
闭卷(或开卷):闭卷
考试时间:2009年 6 月 23日
题号 一 二 三 四 五 六 七 总分 核对人
题分 10 10 10 10 20 20 20 100
得分 评卷人
单项选择题(在下面每小题地A.B.C.D四个选项中,只有一个选项是正确地,请选择正确地选项并填写到括号内,选择正确得分.本大题共10小题,每小题1分,共10分.)
1.ENUM是A.合法标识符B.C语言地关键字
C合法地字符串D.既不是C语言地关键字,也不是合法地字符串或标识符下列数据中属于字符常量地是'\'
3.下列数据中型常量是0x2.5E10
4.下列数据中与等值数为A.0256
以下叙述中正确地是局部变量说明为static存储类型,其生存期将得到延长
B全局变量说明为static存储类型,其作用域将被扩大
C任何存储类型地变量在未赋初值时,其值都是不确定地
D形参可以使用地存储类型说明符与局部变量完全相同?对于下面数组声明,正确地是A.int x[][5];
B.char t[ ]={‘a’,’b’,’c’,’\0’};
C.int n=5,a[n];
D.char s[5]=“abcde”;
8.若有以下地说明和语句,则在执行for语句后,*(*pt+2)表示地数组元素是 int t[3][3],(*pt)[3],k; for (k=0;k3;k)
pt = t+k;?A.t[1][2]
9.已知枚举类型定义 enum a {ONE=5,TWO=3,THREE}; 则THREE地值地是
10.设有以下说明和语句表达式整型int b[’b’-’a’];
C.int x,a[x][3];
D.char d[11]=&abc\ndef\n&;
3.设有声明:int k[2],*p1=k,*p2=p1;下面能够正确执行地语句有:
D.*p1*=*p2;
4.设有说明:
} t[2]={{{1,0},&xy&},{{0, 1},&yx&}},*p=t;
下面表达式之值为 ’x’(或其ASCII码值为120)地是: 【
B.*++(++p)-&s
C.p-&s[p-&n[0]]
D.(*++p).s[*(*p).n]-1
5.链表具备地特点是
A.链表由一系列包含数据域和指针域地结点组成
B.插入和删除不需要移动任何元素
C.可随机访问任意一个结点
D.所需存储空间与其长度成正比
得分 评卷人
填空题(本大题共10小题,每小题1分,共10分.)
本大题地第1题至第5题请参考下面地说明,请计算出表达式地值并填入各题后面地括号中,各题地表达式相互无关.
short x[ ]={ -1,0,1}, *p=x;
unsigned short y=8;
】1.*(p+1) ? y + x[1] : y - x[1]
】2.y =~x[1]
17 】3.x[2] | 0x10
】4.y && x[2]
】5.~(*p&&3)
本大题地第6题至第10题请参考下面地说明,请计算出表达式地值并填入各题前面地括号中,各题地表达式相互无关.
}a[]={{'A',&123&, 0},{'B',&321&, 1}},*p=a;
】6.(++p)-&x
】7.p-&c+(p+
正在加载中,请稍后...福建省交通运输工程一级重点学科
福建省交通运输工程一级硕士学位授权学科
2017年C语言程序设计-研究生考试大纲
发布者:交通运输工程重点学科
浏览次数:22
补充资料:福建工程学院年硕士研究生入学考试专业课课程(考试)大纲一、考试科目名称:C语言程序设计二、招生学院(盖学院公章):信息科学与工程学院三、招生专业:交通运输工程基本内容:C语言程序设计简介一、课程性质《C语言程序设计》涉及掌握高级程序设计语言的基本知识,以及使用高级计算机语言进行程序设计的基本技能与方法。C语言是目前最有代表性的高级语言,涉及面向过程的结构化程序设计的基本思想和方法。本课程是一门重要的专业基础课程,是从事交通运输工程的研究和设计、学习“面向对象程序设计”等相关后续课程的理论基础。 二、考纲范围(1)程序和算法的概念,程序设计的基本过程,算法的特点,结构化程序设计方法的思想(2)数据类型的含义,几种内置数据类型,常量与变量的概念,变量的声明与使用(3)运算和表达式,各种基本运算和表达式的使用,数据类型之间的转换(4)基本程序结构:顺序、选择和循环,基本程序结构的堆叠和嵌套(5)一维数组的概念和应用,为什么要使用数组,一维数组名有什么特殊的含义(6)二维数组的概念和应用,二维数组与一维数组有什么不同,二维数组名的含义(7)字符数组与字符串有什么不同,字符数组和字符串处理函数的使用(8)函数的概念与作用,函数的定义、函数原型声明、函数调用、函数测试的具体方法(9)函数的参数有什么意义,实参与形参的概念,参数传递的具体方式,数组作为函数的参数有什么特殊之处(10)函数的递归定义有什么特点,函数递归调用的具体过程(11)变量的作用域和存储类别的概念,局部变量、静态变量、全局变量、内部函数和外部函数的意义和用法(12)指针的概念,指针变量的声明和初始化,指针变量作为函数的参数有什么意义(13)用指针访问一维数组和二维数组,用指针操作字符串(14)动态内存分配的方法,动态申请的内存与自动分配的内存有什么不同。(15)使用结构(体)和联合自定义可以表达某一客观世界对象的数据类型,使用枚举自定义表达一组常量的数据类型。用自定义的数据类型表达实际问题中的数据。(16)数据的永久存储。文件的概念,文本文件和二进制文件的区别,文件的基本操作。&参考书目:&&&考试说明:&考试不可以携带计算器、绘图工具等。&&&[转载]C语言程序设计等级考试习题汇编
C语言程序设计等级考试习题汇编
1、设计程序:数列第1项为81,此后各项均为它前1项的正平方根,统计该数列前30项之和,并以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
{ FILE *p; float s=0,a=81;
2、设计程序:统计满足条件x*x+y*y+z*z==2000的所有解的个数,并将统计结果以格式"%d"写入到考生目录中Paper子目录下的新建文件design.dat中。说明:若a、b、c是1个解,则a、c、b也是1个解,等等。
#include &stdio.h&
void main()
{ FILE *p; int x,y,z,k=0;
3、设计程序:x[i],y[i]分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include&stdio.h&
#include&math.h&
void main()
x[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6};
y[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4};
4、设计程序:在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
5、设计程序:x[i],y[i]分别表示平面上一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include&stdio.h&
#include&math.h&
void main()
x[10]={-1.5,2.1,6.3,3.2,-0.7,7.0,5.1,3.2,4.5,7.6};
y[10]={3.5,7.6,8.1,4.5,6.0,1.1,1.2,2.1,3.3,4.4};
6、设计程序:求斐波那契(Fibonacci)数列中大于t的最小的一个数,结果由函数JSValue返回,其中斐波那契数列F(n)的定义为:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
&分别计算当t=1000和t=3000时的结果,将计算结果输出到考生目录中Paper子目录下的新建文件design.dat中。
#include&stdio.h&
int JSValue(int t)
{ int a[];
void main()
7、设计程序:求斐波那契(Fibonacci)数列中其前40项之和,其中斐波那契数列的定义为
后一项为前两项之和并将求和的结果以格式"%d"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
void main()
{ FILE *p; long s=0,i,a[40];
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
8、设计程序:计算表达式1+2!+3!+...+12!的值,并将计算结果以格式 "%ld"
写入到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
void main()
{ FILE *p; long s=1,k=1;
9、设计程序:利用公式π/4≈1-1/3+1/5-1/7+……公式计算π的近似值,直到某一项的绝对值小于1e-6为止。(π/4的结果不包含此项),将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
&& float n=1,t=1,pi=0;
9、设计程序:将满足条件pow(1.05,n)&1e6&pow(1.05,n+1)的n及其相应pow(1.05,n)
值以格式"%d,%.0f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
y=1.05; int n=1;& FILE *p;
10、设计程序:计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+……+a9*sin(x*x*x*x*x*x*x*x*x)的值,并将其值以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
&#include&stdio.h&
#include&math.h&
void main()
float x=2.345,t=1.0,y=0.0;
a[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9};
11、设计程序:计算多项式a0+a1*x+a2*x*x+a3*x*x*x+...+a9*x*x*x*x*x*x*x*x*x的值,并将其值以格式"%f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
{ FILE *p; float x=1.279,t=1,y=0;
a[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
12、设计程序:z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x,y取值为区间[0,10]的整数,找出使z取最小值的x1,y1,并将x1、y1以格式"%d,%d"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include&stdio.h&
#include&math.h&
void main()
x,y,x1,y1; float z,z1;
13、设计程序:求解百鸡问题。已知公鸡每只5元、母鸡每只3元、小鸡1元3只。求出用100元买100只鸡的解。将得到的解按公鸡、母鸡和小鸡的只数以"%d,%d,%dn"的格式写入到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
void main()
{ FILE *p;
& int cock,hen,
14、设计程序:在数组a的10个数中求平均值v,将大于等于v的数组元素进行求和,并将结果以格式"%.5f"写到考生目录中Paper子目录下的新建文件design.dat中。
&void main()
&{ FILE *p;
a[10]={7.23,1.5,5.24,2.1,2.45,6.3,5,3.2,0.7,9.81},sum,v=0;
15、设计程序:z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
void main()
{ FILE *p; float f(float x,float y),
& int x,y,x1,y1;
&& * to do
float f(float u,float v)
{ return (3.14*u-v)/(u+v); }
16、设计程序:对x=1,2,...,10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式"%.3f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
f(float),max,x;
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
float f(float x){
x-10*cos(x)-5*sin(x);&&&
17、设计程序:寻找并输出11至999之间的数m,它满足m、m*m、m*m*m均为回文数。所谓回文数是指各位数字左右对称,例如121、676、94249等。满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。请编制函数int
JSValue(long
m)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到考生目录中Paper子目录下的新建文件design.dat中。
#include&stdio.h&
#include&stdlib.h&
#include&string.h&
int JSValue(long m)
&& int dig[20];
void main()
if((p=fopen("design.dat","w+"))==NULL){
printf("can't open the filen");
p=fopen("design.dat","w");
for(m=11;m&1000;m++)
if(JSValue(m)&&JSValue(m*m)&&JSValue(m*m*m))
&&&&&&&&&&&
fclose(p);
18、设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式"%f"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
#define len(x1,y1,x2,y2)
sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
void main()
{ FILE *p; int i,j; float c,
x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};
& minc=len(x[0],y[0],x[1],y[1]);
19、设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式"%.5f"写到考生目录中Paper子目录下的新建文件design.dat中。
&void main()
&&& FILE *p;
int i,k=0;
x[10]={7.23,-1.5,5.24,2.1,-12.45,6.3,-5,3.2,-0.7,9.81},d,v=0;
20、设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式"%.5f"写到考生目录中Paper子目录下的新建文件design.dat中。
&void main()
&&& FILE *p;
int i,k=0;
x[10]={7.23,-1.5,5.24,2.1,-12.45,6.3,-5,3.2,-0.7,9.81},d,v=0;
21、设计程序:在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"="每行3个数写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
&void main()
&{ FILE *p;
&& int i,j,temp,n=0;
a[10]={7,6,20,3,14,88,53,62,10,29},b[10];
22、设计程序:计算2的平方根、3的平方根、...、10的的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式"%.10fn"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
{& FILE *p;
&& int i,t=1;
23、设计程序:有数列:2/1,3/2,5/3,8/5,13/8,21/13,……求出数列的前40项的和。将结果以格式"%.6f"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include&stdio.h&
void main()
f1=1.0,f2=2.0,t1=2.0,t2=3.0,s;
24、设计程序:在6至5000内找出所有的亲密数对,并将每对亲密数用语句
fprintf(p,"m,mn",a,b);”写到考生目录中Paper子目录下的新建文件design.dat中。
说明:若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。如:220、284是1对亲密数,284、220也是1对亲密数。
#include &stdio.h&
void main()
{ FILE *p; int a,b,c,k;
25、设计程序:某公司1999年年产量11.5万件,生产能力每年提高9.8%,求出产量能超过x万件的年份,结果由函数Year返回。计算当x=20和x=30时的结果,将计算结果输出到考生目录中Paper子目录下的新建文件design.dat中。
#include&stdio.h&
int Year(int x)
void main()
p=fopen("design.dat","w");
fprintf(p,"%d,%d",Year(20),Year(30));
fclose(p);
26、设计程序:将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1],...),然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中新建的文件design.dat中。
&&&&&&&&&&&&&&&&&&&&&&&
#include &stdio.h&
void main()
{ float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
& FILE *p;
27、设计程序:将数组a的每1行均除以该行上的主对角元素(第1行同除以
a[0][0],第2行同除以a[1][1],...),然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中新建的文件design.dat中。
&&&&&&&&&&&&&&&&&&&&&&&&&&&
#include &stdio.h&
void main()
{ float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
& FILE *p;
& for(i=0;i&3;i++) {
for(j=0;j&3;j++) fprintf(p,".6f",a[i][j]);
fprintf(p,"n");
& fclose(p);
28、设计程序:将数组a的每1行均除以该行上绝对值最大的元素,然后将a数组写入到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
{ float a[3][3]={{1.3,2.7,3.6},{2,3,4.7},{3,4,1.27}};
& FILE *p; int i,j;
29、设计程序:在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"="每行3个数写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
&void main()
&{ FILE *p;
&& int i,j,temp,n=0;
a[10]={7,6,20,3,14,88,53,62,10,29},b[10];
30、设计程序:计算500~800区间内素数的个数cnt和素数和sum。请编写函数JSValue()实现程序的要求。最后把cnt和sum写入到考生目录中Paper子目录下的新建文件design.dat中
#include&stdio.h&
void JSValue()
void main()
p=fopen("design.dat","w");
JSValue();
fprintf(p,"%d,%d",cnt,sum);
fclose(p);
31、设计程序:计算数列1,-1/3!,1/5!,-1/7!,1/9!,...的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以格式"%.6"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
{ FILE *p; float s=1,t=1,i=3;
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&
32、设计程序:数组元素x[i]、y[i]表示平面上某点坐标,统计10个点中处在圆
(x-1)*(x-1)+(y+0.5)*(y+0.5)=25内的点数k,并将变量k的值以格式"%d"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
#include &math.h&
void main()
{ FILE *p; int i,k=0;
x[]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65};
y[]={-6,4.3,4.5,3.67,2.42,2.54,5.6,-0.97,4.65,-3.33};
32、设计程序:累加a字符串中各个字符的ASCII码值,然后将累加和以格式"%d"写到考生目录中Paper子目录下的新建文件design.dat中。
#include &stdio.h&
void main()
{ FILE *p; int s=0,i=0;
& char *a="r235%^4cdDW,.";
}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
33、设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII码值的乘积。位置值从1开始依此递增。将每个字符的权重值,以格式"%d
"写入到考生目录中Paper子目录下的新建文件design.dat中。
#include&stdio.h&
#include&math.h&
void main()
*p;& int i,w;
*s="we45*&y3r#$1";
34、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入整数n(n&0),求m使得
2的m次方小于或等于n、2的m+1次方大于或等于n。
#include &stdio.h&
void main()
{&& int m=0,t=1,n;
&&& while(
_____ 1 ________);
while(!(t&=n&&t*2&=n)){
_____ 2 _____
printf("%dn",m);
35、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
该程序功能:输入三个整数,按由小到大的顺序输出这三个数。
#include &stdio.h&
void swap(int *pa,int *pb)
&&& temp =
void main()
scanf("%d,%d,%d",&a,&b,&c);
swap(__1__);
swap(__2__);
swap(__3___);
printf("%d,%d,%d",a,b,c);
36、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。
struct STUDENT
void GetAverage(struct STUDENT
______1______;
pst-&average = sum/3;
void main()
&&& struct
STUDENT st[4]={{"Jessica",98,95,90},{"Mike",80,80,90},
&&&&&&&&&&&&&&&&&&&&&&&&&
{"Linda",87,76,70},{"Peter",90,100,99}};
for(i=0;i&4;i++)
GetAverage(______2______);
printf("NametMathtEnglishtComputAveragen");
for(i=0;i&4;i++)
printf("%st%dt%dt%dt%dn",st[i].name,st[i].math,st[i].english,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
st[i].computer,st[i].average);
37、在考生目录的Paper子目录下,有Modify.c文件,该文件中“/ ***** N *****
/”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:用选择法对10个整数按升序排序。
#include &stdio.h&
#define N 10
void main()
int& i,j,min,
a[N]={5,4,3,2,1,9,8,7,6,0};
printf("nThe array
(i=0;i&N;i++)
printf("]",a[i]);
(i=0;i&N-1;i++)&&&&&&&&&&
for (j=i+1; j&N; j++)
&&&&&&&&&&&
&&&&&&&&&&&
if& (a[min]&=a[j]){
temp=a[min]; a[min]=a[j];
printf("nThe sorted numbers: n");&
(i=0;i&N;i++)
printf("]",a[i]);
printf("n");
38、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:调用函数f计算代数多项式
1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x
&当x=1.7时的值。
#include &stdio.h&
float f(float,float*,int);
void main()
{& float b[5]={1.1,2.2,3.3,4.4,5.5};
printf("%fn",f(1.7,b,5));
float f(float x,float *a,int n)
{& float y=a[0],t=1;
for(i=1;i&n;i++) {&
&& return(y);
38、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:找出100~999之间所有的Armstrong数。所谓Armstrong数是指这个3位数各位上数字的立方和等于自身。
&例如:371=3*3*3+7*7*7+1*1*1,那么371就是Armstrong数。
#include &stdio.h&
#include&math.h&
void main()
int i,a,b,c;
for(i=100;i&=999;i++)
_______1_______
(________2________)
printf("%d is a Armstrong number!n",i);
39、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。
#include &stdio.h&
void Dec2Bin(int m)
bin[32],j;
for(j=0;m!=0;j++)
bin[j]= ___1___;
for(;j!=0;j--)
printf("%d",bin[j-1]);
void main()
scanf("%d",&n);
Dec2Bin(n);
40、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:将输入的十进制整数n通过函数DtoH转换为十六进制数,并将转换结果以字符串形式输出。例如:输入十进制数79,将输出十六进制4f。
# include &stdio.h&
# include &string.h&
char trans(int x)
if(x&10) return '0'+x;
else _______1________
int DtoH(int n,char *str)
while(n!=0)
________2________
n/=16;i++;}
return i-1;
void main()
int i,k,n;
scanf("%d",&n);
k=DtoH(n,str);
for (i=0;i&=k;i++) printf("%c",str[k-i]);
41、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:调用find函数在输入的字符串中查找是否出现"the"这个单词。
&如果查到返回出现的次数;如果未找到返回0。
#include &stdio.h&
int find(char *str)
&char *fstr="the";
i=0,j,n=0;&&&&&
&while (str[i]!='')
for(______1______)
(str[j+i]!=fstr[j])
(______2______) n++;
void main()
{& char a[80];
&& gets(a);
&& printf("%d",find(a));
42、在考生目录的Paper子目录下,有Modify.c文件,该文件中“/ ***** N *****
/”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
&*该程序功能:用递归法将一个六位整数n转换成字符串,例如输入123456,应输出字符串"123456"。
#include&stdio.h&
void itoa(long i,char *s)
itoa(i/10,s-1);
void main()
str[7]="";
scanf("%ld",&n);
itoa(n,str+6);
printf("%s",str);
43、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。
#include &stdio.h&
void main()
{&& int m,n,k;
while(scanf("%d%d",&m,&n),!(m&0&&n&0));
for(k=____1__; _____2____; k--);
printf("%dn",k);
44、在考生目录的Paper子目录下,有Modify.c文件,该文件中“
scanf("%d%d",&a,&n);
for(i=1;i&=n;i++) {
t=(i-1)*10+a;
printf("%ldn",s);
45、在考生目录的Paper子目录下,有Modify.c文件,该文件中“
t=-t*x/++i;
& } while(fabs(t)&eps)
& printf("%fn",s);
46、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:分别统计字符串中英文字母、数字和其他字符出现的次数。
#include &stdio.h&
#include &ctype.h&
void main()
{& char a[80]; int n[3]={0},i; gets(a);
for(i=0;i&80;i++)
&& {if (_____1_____)
&else if (____2____)&
&& n[2]++;
for(i=0;i&3;i++) printf("%dn",n[i]);
47、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:对x=1,2,...,10,求f(x)=x*x-5*x+sin(x)的最大值。
#include &stdio.h&
#include &math.h&
#define f(x) x*x-5*x+sin(x)
void main()
max=____1___;
for(x=2;x&=10;x++)
if(max&f(x))____2____;
printf("%fn",max);
48、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:输入的一个小写字母,将字母循环后移5个位置后输出,
&如’a’变成’f’, ‘w’变成’b’。
#include &stdio.h&
void main()
c=getchar();
if(______1______)
if (c&='v' &&
&&&&&&&&&&&
______2______
putchar(c);
49、在考生目录的Paper子目6录下,有Modify.c文件,该文件中“
&& struct axy {float
y; } a[n];
scanf("%d",&n);
&& a=(float*)
malloc(n*2*sizeof(float));
for(i=0;i&n;i++)
scanf("%f,%f",a[i].x,a[i].y);
for(i=0;i&n;i++)
if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)&=5)
&&&printf("%f,%fn",a[i].x,a[i].y);
50、在考生目录的Paper子目录下,有Modify.c文件,该文件中“/ ***** N *****
/”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:将两个字符串连接起来。
#include &stdio.h&
void main()
s1[80],s2[40];
printf("nInput the first string:");
scanf("%s",s1);
printf("nInput the second string:");
scanf("%s",s2);
(s1[i] !='')
(s2[j] !='')
s1[i++]=s2[j++];&&&&&&&&&&
printf("nNew string: %s",s1);
50、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。
#include &stdio.h&
struct STUDENT
void GetAverage(struct STUDENT
______1______;
pst-&average = sum/3;
void main()
&&& struct
STUDENT st[4]={{"Jessica",98,95,90},{"Mike",80,80,90},
&&&&&&&&&&&&&&&&&&&&&&&&&
{"Linda",87,76,70},{"Peter",90,100,99}};
for(i=0;i&4;i++)
GetAverage(______2______);
printf("NametMathtEnglishtComputAveragen");
for(i=0;i&4;i++)
printf("%st%dt%dt%dt%dn",st[i].name,st[i].math,st[i].english,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
st[i].computer,st[i].average);
51、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:输入数组x[7],调用函数f,去除数组中的负数,输出结果为:1&
#include &stdio.h&
void f(int *a,int *m)
{ int i,j;
& for(i=0;i&*m;i++)
& if(a[i]&0) {
for(j=i--;j&*m-1;j++) a[j]=a[j+1];
_____1_____;
void main()
{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};
& _______2_______;
& for(i=0;i&n;i++)
printf("]",x[i]);
& printf("n");
52、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:将字符串s中所有的字符'c'删除。
#include &stdio.h&
void main()
for(i=j=0;i&=80;i++)
if(s[i] != 'c')
&&&&&&&&&&&
s[j]=____1___;
&&&&&&&&&&&
s[j]=____2____;
53、在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N
*****”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:
&输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。
&例如:输入"abc123+xyz.5",应输出"abcxyz"。
#include &stdio.h&
#include &string.h&
void main()
& char str[256];
& int i,j,k=0,n;
& gets(str);
& n=strlen(str);
& for(i=0;i&n;i++)
(tolower(str[i])&='a'
tolower(str[i])&='z')
str[k]=str[i]; k++;
& str[k]='';
& printf("%sn",str);
54、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:调用函数f,从字符串中删除所有的数字字符。
#include &stdio.h&
#include &string.h&
#include &ctype.h&
void f(char *s)
{ int i=0;
& while(s[i]!=''){
if(isdigit(s[i])) ____1____(s+i,s+i+1);
___2___& i++;}
void main()
{ char str[80];
& gets(str); f(str); puts(str);
55、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:调用函数f,将1个整数首尾倒置,若程序输入12345,则输出54321;
&若程序输入-34567,则输出-76543。
#include &stdio.h&
#include &math.h&
long f(long n)
{& long m,y=0;& m=fabs(n);
&& while(m!=0) {
y=____1__+m;
m=____2____;
&& if(n&=0)
&& else return -y;
void main()
printf("%ldt",f(12345));&
printf("%ldn",f(-34567));
56、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:数列的第1、2项均为1,此后各项值均为该项前二项之和。计算数列第30项的值。
#include &stdio.h&
long f(int n);
void main()
printf("%ldn",___1__);
long f(int n)
if(n==1||n==2)
return ___2___;
return f(n-1)+f(n-2);
56、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:输入1个整数后,输出该数的位数(若输入3214则输出4,输入-23156
&则输出5)。
#include &stdio.h&
void main()
{&& int n,k=0;
scanf("%d",____1___);
&&& while(
printf("%dn",k);
57、在考生目录的Paper子目录下,有Modify.c文件,该文件中“/ ***** N *****
/”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:用递归法将一个六位整数n转换成字符串,例如输入123456,应输出字符串"123456"。
#include&stdio.h&
void itoa(long i,char *s)
itoa(i/10,s-1);
void main()
str[7]="";
scanf("%ld",&n);
itoa(n,str+6);
printf("%s",str);
58、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
& #include
& #include
& void main()
&& int n,s=0;
scanf("%d",&n);
&& ______ 1 ______
&& while(n!=0) {
&&______ 2 ______
&& printf("%dn",s);
59、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能: 求出a中各相邻两个元素的和,并将这些和存放在数组 b中,
&按每行3个元素的形式输出。例如:
b[1]=a[1]+a[0],…………,b[9]=a[9]+a[8]。
#include &stdio.h&
void main()
a[10],b[10],i;
printf("nInput 10 numbers:& ");
&&& for (i=0;
i&10;i++)&&&&&&&&&&&&&&&&&&
scanf("%d", &a[i]);
&&& for (i=1;
i&10; i++)
b[i]=_____1______;&&&&&&&&&&&&&&
&&& for (i=1;
i&10; i++)
printf("=",b[i]);
if (______2______)&
printf("n");&&&&&
60、在考生目录的Paper子目录下,有Modify.c文件,该文件中“
while(n&1)
if(n%i==0) {
printf("%dt",i);
61、在考生目录的Paper子目录下,有Modify.c文件,该文件中“***** N
*****”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t
&例如:输入"ABCD",则字符串t为"ABCDDCBA"。
# include &stdio.h&
# include &string.h&
void fun(char *s,char *t)
& sl=strlen(s);
& for(i=0;i&i++)
t[i]=s[i];
& for(i=0;i&i++)
t[sl+i]=s[sl-i];
& t[sl]="";
void main()
& char s[100],t[100];
& scanf("%s",s);
& fun(s,t);
& printf("%s",t);
62、在考生目录的Paper子目录下,有Modify.c文件,该文件中"____ N
____"是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句,否则后果自负)。
&该程序功能:输入m、n(要求输入数均大于0),输出它们的最大公约数。
#include &stdio.h&
void main()
{&& int m,n,k;
while(scanf("%d%d",&m,&n),
_______1______ );
____2____; n%k!=0||m%k!=0; k--);
printf("%dn",k);
64、在考生目录的Paper子目录下,有Modify.c文件,该文件中“
for(i=0;i&=10;i++) {
scanf("%f",&x);
if(i=1) { max=x;min=x;}
if(x&max) max=x;
if(x&min) min=x;
printf("%f,%fn",max,min);
分章节练习题汇编
数组a[5]表示a数组有5个元素,下标从1到5。F
数组的大小不依赖于程序运行过程中变量的值。T
在C中,变量和数组都必须先定义,然后使用。T
int new[8]={0,0,0,0,0,0,0,0}等价于int new[8]={0*8}。F
int a[3][2]={{1,1,1},{2,2,2},{3,3,3}}等价于int
a[3][2]={{1},{2},{3}}。F
用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。T
数组的名称其实是数组在内存中的首地址。T
如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值。F
当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改。T
10.&& C语言不检查数组的下标是否越界。T
二、&&&&&&
单项填空题
若数组名作实参而指针变量作形参,函数调用实参传给形参的是 (D)
A.数组的长度
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
B.数组第一个元素的值
C.数组所有元素的值
&&&&&&&&&&&&&&&&&&&&&&&&&&&
D.数组第一个元素的地址
已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是 (C)
A.数组a和b的长度相同
&&&&&&&&&&&&&&
B.a数组长度小于b数组长度
C.a数组长度大于b数组长度
D.上述说法都不对
以下能正确定义一维数组的选项是(B)
a[5]={0,1,2,3,4,5}&&&&&&&&&&&&&&&&&&&&&&&&&&
B.char a[]={0,1,2,3,4,5}
a={'A','B','C'}&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D.int a[5]="0123"
有以下语句:char c[10];,则正确的输入语句是 (B)
A.scanf("%d%s",&b,&c)&&&&&&&&&&&&&&&&&&&&&&&&
B. scanf("%d%s",&b,c);
C.scanf("%d%s",b,c)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D.scanf("%d%s",b,&c);
已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是 (C)
A.数组a和b的长度相同
&&&&&&&&&&&&&&
B.a数组长度小于b数组长度
C.a数组长度大于b数组长度
D.上述说法都不对
以下语句或语句组中,能正确进行字符串赋值的是 (C )
A.char **sp="right!";
&&&&&&&&&&
B.char s[10];s="right!";
C.char s[10];*s="right!";
D.char *sp="right!";
有以下程序
{char s[]="159",*p;
printf("%c",*p++);printf("%c",*p++);
程序运行后的输出结果是(A)
&&&&&&&&&&&&&&&&&&&&&&&&
B.16&&&&&&&
&&&&&&&&&&&
C.12&&&&&&&&&&&&&
有以下程序
num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i&4;i++)
{for(j=0;j&=i;j++)printf("L",' ');
for(j=_____;j&4;j++)printf("M",num[i][j]);
printf("n");
若要按以下形式输出数组右上半三角
则在程序下划线处应填入的是 (B)
A.i-1&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&
下面程序(C) (每行程序前面的数字表示行号)
1& main( )
3& float a[10]={0,0};
5& for (i=0;i&3;i++)
scanf(“%d”,&a[i]);
6& for (i=1;i&10;i++)
a[0]=a[0]+a{i};
7& printf(“%fn”,a[0]);
A.没有错误&&&&
B.第3行有错误观点&&&
C.第5行有错误&&&
D.第7行有错误
若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为(D)..(假设a[0][0]位于数组的第一个位置上)。
&&&&&&&&&&&&&&&&&
B.j*m+I&&&&&&&&&&&&&&&&&&&&&&&
C.i*m+j-1&&&&&&&&&&&&&
11.&& 若有以下程序段:
&&& ······
a[]={4,0,2,3,1},I,j,t;
(i=1;i&5;i++)
{t=a[i];j=i-1;
while (j&=0 &&
{a[j+1]=a[j];j--;}
······&&
&则此程序的功能是( B)
A.对数组a进行插入排序(升序)&&&&&&&&&&&&&&&&&&&&
B.对数组a进行插入排序(降序)
C.对数组a进行选择排序(升序)&&&&&&&&&&&&&&&&&&&&
D.对数组a进行选择排序(降序)
三、程序填空题
以下是使用数组来处理并打印斐波那契数列的前二十项的程序。打印时,每行打印10个数字。斐波那契数列的格式为:当n=0时,f[0]=0,当n=1时,f[1]=1,当n&1时,f[n]=f[n-1]+f[n-2]。
# include,stdio.h.
{ int___(1)____ ;
&int line=0,j;
&fbnq[0]=0;
&fbnq[1]=1;
&for (j=___(2)____;j&20;j++)
& ___(3)____;
&for (j=0.j&20;j++);
&{ print (%d,”fbqn[j]);
& ___(4)____;
& if (line==10)
|&& {___(5)____
printf(“n”);
return (1);
Fbnq&&&&&&&&&&
B. Fbnq[1 to
Fbnq[20]&&&&&&&&&&
2.A.1&&&&&&&&&
B.2&&&&&&&&&&&&
C.0&&&&&&&&&
3.A.fbnq[j]=fbnq[j-1]+fbnq[j]&&&&&&&&&&
B. fbnq[j]=fbnq[j-1]+fbnq[j-2]
fbnq[j]=fbnq[0]+fbnq[1]&&&&&&&&&&
D. fbnq[j+1]=fbnq[j-1]+fbnq[j]
line++&&&&&&&&&
B.line--&&&&&&&&&&&&&&&&&
C.line=line-1&&&&&&&&&
5.A. line++
B.line--&&&&&&&&&&&&&&&&&
C.line=line-1&&&&&&&&&
有已排序好的字符串a,下面的程序是将字符串s中的每个字符升序的规律插入到a中,请选择填空。
# include &stdio.h&
& {char a [20 ]=”cehiknqtw”;
&&& char s [ ]=
&&& for (k = 0;s
[k]&!=’’);k++)
&&& { j=0;
while (k = 0;s [k]&=a
[j]&&a[j]!=’’) j++;
for (____(1)____)& ____(2)____ ;
a [j]= s[k];
& puts(a);
1.A.i=strlen(a)+k:; i&=j;
i--&&&&&&&&&&&&&&
B.i=strlen(a);i&=j;i--
&&& C.i=j;
i&=strlen(a)+k;i++&&&&&&&&&&&&&&&&&&&&
D.i=j;i&=strlen9a);i++
2.A.a[i]=a[i+1]&&&&&&&&&&
B.a[i+1]=a[i]&&&&&&&&&
C.a[i]=a[i-1]&&&&&&&&&
D.a[i-1]=a[i]
下面程序的功能是将已按升序排好序的两个字符串a和b中的字符按升序归并到字符串c中,请选择填空。
# include &stdio.h&
&{ char a[ ]=”acegikm”;
& char b[ ]=”bdfhjlnpq”;
& char c[80],*p
& int i=0,j=0,k=0;
& while (a[i]!=’’
&& b[j]!=’’)
(a[i]&b[j]) {____(1)____}
else {____(2)____}
& c[k]=’’;
& if (____(3)____) p=b+j;
& else p=a+i;
& strcat (c,p);
& puts(c);
1.A.c[k]=a[i];i++&&&&&&&&&&&&&
c[k]=a[j];i++&&&&&
c[k]=a[i];j++&&&&
D.c[k]=a[j];j++
2.A.c[k]=a[i];i++&&&&&&&&&&&&&
c[k]=a[j];i++&&&&&
c[k]=a[i];j++&&&&
D.c[k]=a[j];j++
3.A.a[i]=
=’’&&&&&&&&&&&
B. a[i]! =’’
C. a[i-1]=
=’’&&&&&
D. a[i-1]! =’’
下面程序以每行4个数据的形式输出a数组,请选择填空。
# define N 20
{ int a [N],I;
&for (i=0;i&N;i++) scanf(%d”,
____(1)____)
& {if (____(2)____) ____(3)____
printf(“%d”,a[i]);
&& printf(“n”);
1.A.a[i]&&&&&&&&&&&&&&&&&&&&&
B.&a[i]&&&&&&&&&&&&&&&&&
C.a&&&&&&&&&&&&&&&&&&&&&&
2.A.i % 4=
=0&&&&&&&&&&&
B. i % 4! =0
=0&&&&&&&&&&&
D. i / 4! =0
printf(“r”)&&&&&&&&&
printf(“w”)&&&
C. printf(“n”)
D. printf(“b”)
下面程序将二维数组a的行和列元素互换后存另一个二维数组b中,请选择填空。
{ int a[2][3]={(1,2,3),(4,5,6)};
&int b[3][2],I,j;
&printf(“array a:n”);
&for (i=0;i&=1;i++)
&& {for (j=0;
____(1)____;j++)
{printf(“]”,a[i][j]);
____(2)____;
printf(“n”);
&printf(“array b: n”);
&for (i=0; ____(3)____;i++)
(j=0;j&=1;j++)
printf(“]”,b[i][j]);
printf(“n”)
1.A.j&1&&&&&&&&&&&&&&&&&&&&&
B.j&=1&&&&&&&&&&&&&&&&&&&&&&&&&
C.j&=2&&&&&&&&&&&&&&&&&&&&&&&&
2.A.b[j][i]=a[j][i]&&&&&&&
b[j][i]=a[i][j]&&&&&&&&&&&&
b[i][j]=a[j][i]&&&&&&&&&&&&
D. b[i][j]=a[i][j]
3.A.j&1&&&&&&&&&&&&&&&&&&&&&
B.j&=1&&&&&&&&&&&&&&&&&&&&&&&&&
C.j&=2&&&&&&&&&&&&&&&&&&&&&&&&
下面程序可求出矩阵a的两条对角线的元素之和,请选择填空。
&{ int a[3][3] =
{1,3,6,7,9,11,14,15,17,},sum1=0,sum2=0,i,j;
(i=0;i&3;i++)
for (j=0;j&=3;j++)
if (i= =j) sum1=sum1+a[i][j];
(i=0;i&3;i++)
for (____(1)____; ____(2)____;j--)
if ((i+j)= =2) sum2=sum2+a[i][j];
&& print (“sum1=%d,sum2=%d
n”,sum1,sum2);
1.A.j=0&&&&&&&&&&&&&&&&&&&&&
B.j=1&&&&&&&&&&&&&&&&&&&&
C.j=2&&&&&&&&&&&&&&&&&&&
2.A.j&=0&&&&&&&&&&&&&&&&&&&
B.j&=1&&&&&&&&&&&&&&&&&&
C.j&=2&&&&&&&&&&&&&&&&&
以下程序可求出所有的水仙花数。(提示:所谓水仙花数是指一个三位正数,其各位数字的立方和等于该正整数)请选择填空。
{ int x,y,z,a [8 ],m,i=0;
& printf(“the special numbers are (in the arrange
of 1000):n”);
& for (____(1)____;m++)
{ x=m/100;
y=____(2)____;
if (x*100+y*10+z=x*x*x+y*y*y+z*z*z) {____(3)____ ;i++;}
(x=0;x&I;x++)
printf(“m”,a[x]);
1.A.m=100;m&999&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
B. m=100;m&1000
m=1;m&1000&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D. m=1;m&999
2.A.m/10&&&&&&&&&&&&&&&&&&
B.m/10-x*10&&&&&&&&&&&&&&&&
&x*10&&&&&&&&&&&&&&&&&&&
3.A.a[i]=m&&&&&&&&&&&&&&&&
B.a[i]=xyz&&&&&&&&&&&&&&&&&&&
C.a[i+1]=m&&&&&&&&&&&&&&&&&&
D.a[i+1]=xyz
下面程序的功能是生成并打印某数列的前20项,该项数列第1,2项分别为0和1,以后每个奇数编号的项是前两项的和,偶数编号的项是前两项差的绝对值。生成的20个数存在一维数组x中,并按每行4项的形式输出,请选择填空。
{ int x[21],I,j;
&x[1]=0;x[2]=1;
x[i]= ____(1)____;
x[i+1]= ____(2)____;
i=____(3)____;
& }while (i&=20);
for (i=;i&=20;i++)
& { printf(“]”,x[i]);
&&& if (i%4=
printf{“n”};
1.A.x[i-1]+x[i-2]&&&&&&&&
B.x[i+1]+x[i+2]&&&&&&&&&&&&
x[i]+x[i-1]&&&&&&&&
D. x[i]+x[i+1]
2.A.x(i-1)-x(i)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
B.x(i)-x(i-1)&
C.fabs((double)(x(i)-x(i-1))&&&&&&&&&&&&&&&&&&&&&&&&&
D. fabs((double)(x(i-1)-x(i-2))
3.A.i+1&&&&&&&&&&&&&&&&&&&&&
B.i+2&&&&&&&&&&&&&&&&&&&&&&&&&&&
C.i+3&&&&&&&&&&&&&&&&&&&
下面程序的功能是检查一个二维数组是否对称,请选择填空。
{ int a[4][4]={1,2,3,4,2,2,5,6,3,5,3,7,4,6,7,4,};
&int i,j,found=0;
&for (j=0;j&4;j++)
(____(1)____;i&4;i++)
&&& if (a[i][j]!
=a[j][i]) {____(2)____ ;}
&&& if (found)
printf(“No”);
&else printf(“Yes”);
1.A.i=j&&&&&&&&&&&&&&&&&&&&&&&
B.i=j+1&&&&&&&&&&&&&&&&&&&&&&&
C.i=0&&&&&&&&&&&&&&&&&&&
2.A.found=1&&&&&&&&&&&&&&&
B.found=0&&&&
&&&&&&&&&&&&&&&&
C.found=true&&&&&&&
D.found=false
a是一个3&3的矩阵,输入a的元素,如果a是下三角矩阵,输出“YES”,否则,输出“NO”。
(下三角矩阵,即对角线以上的元素都为0,主对角线为从矩阵的左上角至右下角的连线。)
#include &stdio.h&
void main( )
{ int flag,i,k;
&int a[3][3];
&for (i=0;i&3;i++)
(k=0;k&3;k++);
scanf("%d”,&a[i][k]);
(i=0;i&3&&i++)
for(k=i+1;k&3&&k++)
&&& if (flag)
printf("YESn");
printf("NOn");
A.flag=0&&&&&&&&&&&
B.flag==0&&&&&&&&&&&&
C.flag==1&&&&&&&&&&&&&&&&
A.a[k][i]!=0&&&&&&
B.a[i][k]==0&&&&&&&&
C.a[i][k]!=0&&&&&&&&&&&&&
D.a[k][i]=0
A.flag=0&&&&&&&&&&&
B.flag==0&&&&&&&&&&&&
C.flag==1&&&&&&&&&&&&&&&&
输入一个字符串,将其中的大写字母转换为小写字母后输出。
& void main( )
& { char str[80];
gets(str);
for (k=0;str[k]!=’0’;k++);
puts(str);
1.A、’A’&=str[k]&=’Z’&&&&&&&&&&&&&&&
B、str[k]&’A’&&str[k]&’Z’
C、str[k]&=’A’&&str[k]&=’Z’&&&&&&&&&&&&&&&&&&
D、str[k]&=’A’‖str[k]&=’Z’
2.A、str[k]=str[k]-32&&&&&&&&&&&&&&&&
B、str[k]=str[k]-‘a’+’A’
C、tolower(str[k])&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D、str[k]=str[k]-‘A’+’a’
四、程序阅读题
有以下程序
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++&7) if(p[i]%2) j+=p[i];
printf("%dn",j);
请写出程序运行后的输出结果
有以下程序
char a[7]="a0a0"; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %dn",i,j);
请写出程序运行后的输出结果
有以下程序
void f(int *x,int *y)
t=*x;*x=*y;*y=t;
int a[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
{f(p,q);p++;q--;}
for(i=0;i&8;i++)printf("%d,",a[i]);
写出程序运行后的输出结果
8,7,6,5,4,3,2,1,
有以下程序
int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i&9;i++)p[i]=i;
for(i=0;i&3;i++)printf("%d",a[1][i]);
写出程序运行后的输出结果
有以下程序
int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i&2;i++)
{ptr=a+i;scanf("%d",ptr);ptr++;}
for(i=0;i&3;i++)
{for(j=0;j&2;j++)printf("-",a[i][j]);
printf("n");
若运行时输入:1 2 3&回车&,写出输出结果
写出以下程序运行后的输出结果
{char ch[]="abc",x[3][4];
for(i=0;i&3;i++)strcpy(x[i],ch);
for(i=0;i&3;i++)printf("%s",&x[i][i]);
printf("n");
有如下程序
{ char ch[2][5]={“6937”,”8254”},*p[2];
int i,j,s=0;
for(i=0;i&2;i++) p[i]=ch[i];
for(i=0;i&2;i++)
for(j=0;p[i][j]&’’;j+=2)
s=10*s+p[i][j]-‘0’;
printf(“%dn”,s);
写出该程序的输出结果
有如下程序段,写出输出的结果
&char str[6];
str[0]=”a”;
for (int j=0;j&6;j++)
for (int k=j+1;k&6;k++)
str[k]=str[j]+2;
printf(“%.6s”,str);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
程序设计题
请用户输入一个含有12个浮点数的一维数组,请分别计算出数组中所有的正数的和以及所有的负数的和。
# include&stdio.h&
&{ float data[12];
& float result1=0.0,result2=0.0 //
将要用于分别存放正数和,负数和
& printf(“please inuput 12 float
numbers:n”);
& for (int I=0;I&12;I++)
scanf(“f”,&data[I]);
(I=0;I&12;I++)
(data[I]&0.0)
result1+=data[I];
result2+=data[I]);
&& printf(“the sum of all the
positive number is %.3fn”,result1);
&& printf(“then sum of all the
negitive numbers is %.3fn”,result2);
&& return(1);
2.编写一个程序,输出一个杨辉三角形。
# include&stdio.h&
define M 10
void main ()
int I,j,k,n;
int a[M][M];
printf(“输入n:”);
scanf(“%d”,&n]);
if (n&M-2)
& for (i=0;i&=n+2;i++)
& for (j=0;j&=n+2;j++)
a[i][j]=0;
&a[0][1]=1;
&for (i=1;i&=n+1;i++)
&for (j=1;j&=i;j++)
&a[i][j]= a[i-1][j-1]+ a[i-1][j]
&for (i=1;i&=n+1;i++)
& for (k=0;k&20-3*I;k++)
printf(“”);
& for (j=1;j&=i;j++)
printf(“m”,a[i][j]);
& printf(“n”);
3.编写一个程序,利用随机函数模拟投币结果,设共投币100次,求“两个正面”、“两个反面”、“一正一反”3种情况各出现多少次。
# include&stdio.h&
#include&stdlib.&
&void main ()
& int a[2][2]={0,0,0,0},i,n1,n2
& for (i=0;i&=100;i++)
n1=rand()%2;&&&&
n2=rand()%2;
a[n1][n2]=a[n1][n2]+1;
&printf(“投币结果如下:n”);
&printf(“两个正面的次数为:%dn”,a[0][0])
&printf(“两个反面的次数为:%dn”,a[1][1])
&printf(“一正一反的次数为:%dn”,a[0][1]+&a[1][0])
4.从键盘输入一个字符,用折半查找法找出该项字符在已排序的字符串a中的位置。若该字符不在a中,则打印出**。试编程。
# include &stdio.h&
{char a [12 ]=”adfgimnprs”,c;
&int i,top,bot,
printf(“Input a charactern”);
scanf(“%c”,&c);
printf(“c=c’%c’n”,c);
for (top=0,bot=10;top&=top++)
&& { mid=(top+bot)/2;
  { printf(“The position is %d:n”,mid+1);
else if (c&a[mid]) top=mid+1;
else bot=mid-1;
(top&bot)printf(“**n””);
5.魔方阵问题:把从1到n2(n为奇数)个自然数按方阵排列,使得方阵的每行、每列及对角线的几个数之和都等于一个方阵常量,这个常量是:n(n2+1)/2。例如,1至9可以排成如图的方阵,方阵常量是15。
提示:通常1总是在第一行的中间;对于其他自然数来说,目前数的右上方是下一个数的位置;如果目前数在第一行,但不在最右侧,则下一个数在最后一行,列数右移一列;如果目前数在第一行的最右侧,则下一个数在目前数的下侧;如果目前数在其他行的最右侧,则下一自然数在上一行的最左侧。
# include&stdio.h&
define Max 15
&void main ()
 int i,j,k,a,c;
& int m[Max][Max];
& printf(“输入一个正整数::”);
 scanf(“%d”,&a]);
 if (a&0 &&
printf(“A==nn”,a);
&&& c=a*a;
&&& k=a/2;
(i=1;i&=c;i++)&&&&&&&&&&&&&&&&&&&
m[j][k]=I;
if (i%a= =0)
if (j= =a-1)
&&&&&&&&&&
&&&&&&&&&&
if (j= =0)
if (k= =a-1)
(i=0;i&a;i++)&&&&&&&&&&&&&&
(j=0;j&a;j++)
printf(“%d”,m[i][j]);
printf(“n”);
 printf(“n必须是正奇数n”);
一、&&&&&&&
构成C语言的基本单位是函数。T
C语言规定,程序中各函数之间只允许直接递归调用,不允许间接递归调用。F
C语言程序总是Main()开始执行的。T
C语言中形参的缺省存储类别是extern。F
建立函数的目的之一是减少程序文件所占内存。F
用户可以重新定义标准函数,若如此,该函数将失去原有的含义。T
若调用一个函数,且此函数没有return语句,则没有返回值。F
如果函数值的类型与返回值类型不一致,以函数值类型为准。T
C语言允许函数值类型缺省定义,此时该函数值隐含的类型是int。T
10.&& 函数调用可以做为一个函数的形参。F
若用数组名作为函数调用的实参,传递给形参的是数组的首地址。T
12.&& 在不同函数中可以使用相同名字的变量。F
二、&&&&&&&
单项填空题
有以下程序
#define P 3
void F(int x){return(P*x*x);}
{printf("%dn",F(3+5));}
程序运行后的输出结果是 D
A.192&&&&&&&&&&&&&&&&
B.29&&&&&&&
C.25&&&&&&&&&&&&&
D.编译出错
程序中若有如下说明和定义语句
char fun(char *);
char *s="one",a[5]={0},(*f1)()=fun,
以下选项中对函数fun的正确调用语句是 A
A.(*f1)(a);&&&&&&&&&
B.*f1(*s);&&&&&&&&&&&&&
C.fun(&a);&&&&&&&&&&&
D.ch=*f1(s);
有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5);
该函数调用语句中,含有的实参个数是A
A.3&&&&&&&&&&&&&&&&&&&
B.4&&&&&&&&&&&&&&&&&&&&&&
5&&&&&&&&&&&&&&&&&&&&&
D. 有语法错
有如下程序
int runc(int a,int b)
{ return(a+b);}
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%dn”,r);
该程序的输出的结果是D
12&&&&&&&&&&&&&&&&
13&&&&&&&&&&&&&&&&&&&&
14&&&&&&&&&&&&&&&&&&&
有如下程序
long fib(int n)
{ if(n&2) return(fib(n-1)+fib(n-2));
else return(2);
{ printf(“%dn”,fib(3));
该程序的输出结果是B
2&&&&&&&&&&&&&&&&&&
4&&&&&&&&&&&&&&&&&&&&&
6&&&&&&&&&&&&&&&&&&&&&
在C语言中,函数的隐含存储类别是C
auto&&&&&&&&&&&&&&
static&&&&&&&&&&&&&&&&
extern&&&&&&&&&&&&&&
D,. 无存储类别
有以下函数
char fun(char *p)
该函数的返回值是 B
无确切的值&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
B. 形参p中存放的地址值
B. 一个临时存储单元的地址 D. 形参p自身的地址值
若有以下说明和定义
fun(int *c){ }
{ int (*a)()=fun,*b(),w[10],c;
在必要的赋值之后,对fun函数的正确调用语句是B
a=a(w);&&&&&&&&&
(*a)(&c);&&&&&&&&&
b=*b(w);&&&&&&&&&
D. fun (b);
函数调用语句Fun(exp1,(exp2,exp3,exp4))中含有______实参。B
A.1&&&&&&&&&&&&&&&&&&&
B.2&&&&&&&&&&&&&&&&&&&&&&
C.3&&&&&&&&&&&&&&&&&&&&&&
调用函数f(27)的输出结果是B
void f(int n)
printf("%d",n);
printf("%d",n%5);
A、102&&&&&&&&&&&&&
B、201&&&&&&&&&&&&&&&&
C、21&&&&&&&&&&&&&&&&&&
11.&& 以下程序的正确运行结果是D
{ int a=2,I;
&for (i=0;i&3;i++)
printf(“M”,f(a));
{ int b=0;static int c=3;
&return (a+b+c);
7&&&&&&&&&
13&&&&&&&&
11&&&&&&&&&&
三、&&&&&&&
程序填空题
下面的函数的功能是将一个字符串ch的内容颠倒过来,请填空。
#include&string.h&
void fff(char ch[])
& int i,j,&&
(I=0,j=strlen(ch)&&
;I&j;I++,j--)
k=ch[I];ch[I]=ch[j];lch[j]=k;
1.A.k&&&&&&&&&&&
B.ch&&&&&&&&&&&&&&
C.k=ch&&&&&&&&&&
2.A.-I&&&&&&&&&
B.-1&&&&&&&&&&&&&&
C.+I&&&&&&&&&&&&&&
请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。
int f1(char s[])
&& { int k=0;
while (s[k]!=’’)
int f2(char *s)
& while (*s!=’’)
A.s=ss&&&&&&&&&&&
B.ss=s&&&&&&&&&&&
C.ss=NUL&&&&&&&&&&&&
A.ss-s&&&&&&&&&&&&
B.s-ss-1&&&&&&&&
C.s-ss&&&&&&&&&&&&&&&&&&
以下程序用递归算法实现此功能:输入一个整数,在各数位插入空格后输出。
#include &stdio.h&
&scanf(“”,&n);
&return( 1);
void func(&&
{ if (m&=10)
&printf(“%d”,&&
1.A.n=0&&&&&&&&&&&&&&&&&&&&
B.void func(
C.int func(
)&&&&&&&&&
D.long int func( )
2.A.func(
)&&&&&&&&&
B.n=func(n)&&&&&&&&&
C.func(n)&&&&&&&&&&&&&
3.A.m&&&&&&&&&&&&&&&&
B.n&&&&&&&&&&&&&&&&&&&&&&
C.long int
m&&&&&&&&&
D.long int n
4.A.func(m)&&&&&&&
B.func(m/10)&&&&&&&
C.func(m)&&&&&
5.A.m&&&&&&&&&
B.m/10&&&&&&&&&&&&&&&&
C.m&&&&&&&&&&&&&&&&&&&&&
以下程序是选出能被3整除且至少有一位是5的的两位数,打印出所有这样的数及其个数,请选择填空。
sub(int k,int n)
{ int a1,a2;
(1)&& while
(s[k]!=’’);
& if ((k%3= =0 &&
a2= =5)||( k%3= = &&a1= =5))
& {printf(“%d”,k);
& else return -1;
{int n=0,k,m;
& for (k=10;k&=99;k++)
&& { m=sub(k,n);
if (m!=-1) n=m;
& printf(“nn=%d”,n);
A.k*10&&&&&&&&&&&
B.k&&&&&&&&&
C.k/10&&&&&&&&&&&&&&&&&&
A.a2*10&&&&&&&&&
B.a2&&&&&&&&&&&&&&
C.a2/10&&&&&&&&&&&&&&&&
函数binary的作用是应用折半查找法从存有10个整数的a数组中对关键字m进行查找,若找到,返回其下标值;反之,返回-1。请选择填空。
binary(int a[10],int m)
{ int low=0,high=9,
&while(low&=high)
&{mind=(low+high)/2;
& if (m&a[mid])&
(m&a[mid]&
&else return( mid );
&return (-1};
A.hight=mid-1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
B.low=mid+1
&C.hight=mid+1&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D.low=mid-1
A.hight=mid-1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
B.low=mid+1
&C.hight=mid+1&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D.low=mid-1
以下的程序的功能是用二分法求方程2x3-4x2+3x-6的根,并要求绝对误差不超过0.001。请选择填空。
#include &stdio.h&
float f(float x)
{ return (2*x*x*x-4*x*x+3*x-6;)
{ float m=-100,n=90,r;
&r=(m+n)/2;
&while (f(r)*f(n)! =0)
(1)&& ) m=r;
r=(m+n)/2;
& printf(“方程的解是:%6.3fn”,r);
1.A.f(r)*f(n)&0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
B. f(r)*f(n)=0
f(r)*f(n)&0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D. f(r)*f(n)! =0
2.A.n-m&0.001&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
B. n-m&0.001
n-m=0.001&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
D.m-n&0.001
已有函数pow,现要求取消变量i后pow函数的功能不变,请选择填空。
修改前的函数
pow( int x, int y)
{ int i,j=1;
&for(i=1;i&=y;++i)&
&return(j);
修改后的函数
pow( int x, int y)
&return(j);
1.A.j=1&&&&&&&&&&&&&&
B.j=y&&&&&&&&&&&&
C.j=0&&&&&&&&&&&&
2.A.j&=y&&&&&&&&&&&&
B.j&10&&&&&&&&&&
C.y&=1&&&&&&&&&
3.A.j++&&&&&&&&&&&&&&
B.j--&&&&&&&&&&&&&&&&&&&&
C.y++&&&&&&&&&&&
函数del的作用是删除有序数组a中的指定元素x。已有调用语句n
=del(a,n,x);其中实参n为删除前数组元素的个数,赋值号左边的n为删除后数组元素的个数,请选择填空。
del(int a[],int n,int x)
{ int p,i;
&while(x&=a[ p ]
&for (i=p-1;i&n;i++)
A.p=p-1&&&&&&&&&
B.p=p+1&&&&&&&&
C.a[p+1]=a[p]+1&&&
D.a[p-1]=a[p]-1
A.a[i]=a[i-1]&&&
B.a[i]=a[i+1]&&
C.a[i-1]=a[i]&&&&&&&&&
D.a[i+1]=a[i]
以下程序可计算10名学生1门课成绩的平均分,请选择填空。
float average(float array [ 10 ])
{float aver,sum=array[ 0 ];
&for (i=1;&&
(1)&& ;i++)
&aver=sum/10;
&return (averf);
{ float score[ 10 ],
&printf(“ninput 10 scores:”);
&for (i=0;i&10;i++)
scanf(“%f”,&score[i]);
&printf(“naverage score is %5.2fn”,aver);;
1.A.i&9&&&&&&&&&&&&&&
i&10&&&&&&&&&&&&&&&&
i=10&&&&&&&&&&&&&&&&
2.A.array[i]&&&&&&&&
B.i&&&&&&&&&&&&&&&&&&&&&&&
C.sum+array[i]&&&&&
3.A.average&&&&&&&
B.average(score)& C.average(
D.average(aver)
函数gongyu的作用是求整数的num1和num2的最大公约数,并返回该值,请选择填空。
gongyu(int num1,int num2)
{ int temp,a,b;
&if (num1&&
(1)&& num2)
{temp=num1;num1=num2;num2=}
&a=num1;b=num2;
&& {temp=a%b;a=b;b=}
=&&&&&&&&&&&&&&
B.&&&&&&&&&&&&&&&&
C.&&&&&&&&&&&&&&&&
A.a=0&&&&&&&&&&&&&
=0&&&&&&&&&&
C.b=0&&&&&&&&&&&
四、&&&&&&&
0 10 1 11 2 12
以下程序运行后的输出结果是
fun(int a)
{int b=0;static int c=3;
return(a+b+c);
{int i,a=5;
for(i=0;i&3;i++)printf("%d %d ",i,fun(a));
printf("n");
以下程序运行后的输出结果是什么?
void fun(char *s,int p,int k)
{char s[]="abcdefg";
fun(s,3,strlen(s));puts(s);
以下程序运行后的输出结果是什么
void swap(int x,int y)
t=x;x=y;y=t;printf("%d %d ",x,y);
{ int a=3,b=4;
swap(a,b);printf("%d %dn",a,b);
有以下程序
int f1(int x,int y){return x&y?x:y;}
int f2(int x,int y){return x&y?y:x;}
int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d)); f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%dn",e,f,g);
有以下程序
#define N 20
fun(int a[],int n,int m)
for(i=m;i&=n;i--)a[i+1]=a[i];
int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
for(i=0;i&5;i++)printf("%d",a[i]);
写出程序运行后的输出结果
写出以下程序的输出结果是。
void fun()
{ static int a=0;
a+=2; printf(“%d”,a);
for(cc=1;cc&4;cc++) fun()
printf(“n”);
阅读下列程序:
unsigned fun2 (unsigned m)
unsigned l=2;
& } shile(m);
return (l)
unsigned n =35;
printf(“%d/n”,fun(n));
若输入3个整数3,2,3,写出下面程序的输出结果
#include &stdio.h&
void fun (n,m)
int n,m[];
&t=m[n--];
&t+=2*m[n];
&if (t&-6)
& m[n++]=t/6;m[n]=t%6;
& int I,n,aa[10]={0,0,0,0,0,0};
(“%d%d%d”,&n,&aa[0],&aa[1]);
&for (I=1;I&n;I++)
&& fun (I,aa);
&for (I=0;I&=n;I++)
& printf (“%d”,aa[I]);
printf (“nn”);
五、&&&&&&&
程序设计题
1.&&&&&&&&
编写一个程序,计算Cmn的值。
# include&stdio.h&
int func(int n, int m)
&& if (n&m)
&& else if
return& func(m-n,m);
&& else if (n= =0)
&& else if (n= =1)
return func(n-1,m-1)+func(n,m-1);
void main ()
&& printf(”n求m,n组合n”;
&& n=4;m=6;
printf(“n=%d,m=%d:%dn”,n,mfunc(n,m));
&& n=6;m=4;
printf(“n=%d,m=%d:%dn”,n,mfunc(n,m));
2.&&&&&&&&
编写一个程序,求满足以下条件的最大的n。
21+22+23+···+2n&1000
#include &stdio.h&
int func( )
& int i=1,s=0,n=0;
& return n-1;
void main( )
& printf(“最大的n=%dnn”,func( ));
3.&&&&&&&&
编写一个程序,求方程ax2+bx+c=0的根。
#include &stdio.h&
#include &math.h&
int root(float a,float b,float c,float *x1,float *x2 )
&d=b*b-4*a*c;
&& return 0
&else if (d=0)
&& *x1=(-b)/(2*a)
&& return 1;
*x1=(-b+sqrt(d))/(2*a);
*x2=(-b-sqrt(d))/(2*a);
&&& return
4.&&&&&&&&
分别用递归和非递归的的方法编写求Hermite的函数。
H2(x)=2xHn-1(x)-2(n-1)Hn-2(x)&
float dg(int a,float x)
& if (n= =0)
&&& return
& else if (n= =1)
return& 2*x;
&&& return
2*x*dg(n-1,x)-2*(n-1)*dg(n-2,x);
float fdg(int n, float x)
&& float a,b,c;
(i=2;i&=n;i++)
c=2.0*x*b-2.0*(i-1)*a;
void main( )
& int n=3;
& float x=2.5;
& printf(“求Hermite函数n”);
 printf(“递归方法:%gn”,dg(n,x));
& printf(“非递归方法:%gn”,fdg(n,x));
5.&&&&&&&&
有n个人各拿一只桶,同时到一个水龙头前打水,水龙头注满第i(i=1,2,···,n)个人的桶所需时间为Ti分钟(这些Ti各不相同)。编写一个程序,对这n个人进行排队,使他们花费时间的总和为最小,并求出这个时间。
提示:本题实际上是一个排序问题,将T
i较小的排到较前面,这样花费等价时间的总和为最小,所以,根据Ti从小到大升序排列即可。
#include &stdio.h&
#define MAX 100
float t [MAX]
void bubble(float item[ ],int
n)&& //冒泡排序函数
& int i,j;
& for (i=0;i&n-1;i++)
& for (j=0;j&(n-i-1);j++)
if (item[j]&item[j+1])
temp=item[j];
item[j]=item[j+1];
item[j+1]=
void main( )
& int i,n;
& float s=0;& //总的时间
& printf(“输入n:”);
& scanf(“%d”,&n);
& for (i=0;i&n;i++)
printf(“第%个人的时间:”,i+1);
scanf(“%f”,&t[i]);
&& bubble(t,n);
(i=0;i&n;i++)
s=t[i]*(n-i);
&& printf(“总时间:%gn”,s);
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 c语言程序设计 pdf 的文章

 

随机推荐