C语言不适合用技巧的编程题.docx
- 文档编号:28547285
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:154
- 大小:100.85KB
C语言不适合用技巧的编程题.docx
《C语言不适合用技巧的编程题.docx》由会员分享,可在线阅读,更多相关《C语言不适合用技巧的编程题.docx(154页珍藏版)》请在冰豆网上搜索。
C语言不适合用技巧的编程题
1.编写函数fun,其功能是:
根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代)。
程序运行后,若输入精度0.0005,则程序应输出为3.14…。
doublefun(doubleeps)
{
doubles=1.0,s1=1.0;
intn=1;
while(s1>=eps)/*当某项大于精度要求时,继续求下一项*/
{s1=s1*n/(2*n+1);/*求多项式的每一项*/
s=s+s1;/*求和*/
n++;
}
return2*s;
}
2.编写函数fun,其功能是计算:
s作为函数值返回。
在C语言中可调用log(n)函数求ln(n)。
log函数的引用说明为:
doublelog(doublex)。
例如,若m的值为20,则fun函数值为6.506583。
doublefun(intm)
{
inti;
doubles=0.0;
for(i=1;i<=m;i++)
s=s+log(i);/*计算s=ln
(1)+ln
(2)+ln(3)+…+ln(m)*/
returnsqrt(s);/*对s求平方根并返回*/
}
3.编写函数fun,其功能是:
根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。
例如:
若n的值为11时,函数的值为1.833333
floatfun(intn)
{
inti,s1=0;
floats=0.0;
for(i=1;i<=n;i++)
{s1=s1+i;/*求每一项的分母*/
s=s+1.0/s1;/*求多项式的值*/
}
returns;
}
4.请编写函数fun,其功能是计算并输出如下多项式的值。
Sn=1+1/1!
+1/2!
+1/3!
+1/4!
+…+1/n!
例如,若主函数从键盘给n输入15,则输出为S=2.718282。
doublefun(intn)
{
doublet,sn=1.0;
inti,j;
for(i=1;i<=n;i++)
{
t=1.0;
for(j=1;j<=i;j++)
t*=j;
sn+=1.0/t;
}
returnsn;
}
5.请编写函数fun,其功能是:
计算并输出当x<0.97时,如下多项式的值,直到|Sn-Sn-1|<0.000001为止。
例如,若主函数从键盘给x输入0.21后,则输出为S=1.100000。
doublefun(doublex)
{
doubles1=1.0,p=1.0,sum=0.0,s0,t=1.0;
intn=1;
do
{
s0=s1;
sum+=s0;
t*=n;
p*=(0.5-n+1)*x;
s1=p/t;
n++;
}while(fabs(s1-s0)>=1e-6);
returnsum;
}
6.请编写函数fun,其功能是:
计算并输出给定10个数的方差。
其中:
例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,则输出为S=11.730729
doublefun(doublex[10])
{
doublex1=0.0,s=0.0;
inti;
for(i=0;i<10;i++)
x1=x1+x[i];
x1=x1/10;/*求10个数的平均值*/
for(i=0;i<10;i++)
s=s+(x[i]-x1)*(x[i]-x1);
returnsqrt(s/10);/*求10个数的方差*/
}
7.请编写函数fun,其功能是:
计算并输出给定数组(长度为9)中每相邻两个元素的平均值的平方根之和。
例如,若给定数组中的9个元素依次为12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,则输出应为S=35.951014。
doublefun(doublex[9])
{
doublesum=0.0;
inti,j=1;
for(i=0;i<9;i++)
if(j<=8)
{
sum+=sqrt((x[i]+x[i+1])/2.0);j++;/*相邻两个元素之平均值的平方根之和*/
}
returnsum;
}
8.请编写函数fun,其功能是:
计算并输出下列多项式的值,
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函数从键盘给n输入8后,则输出为S=0.662872。
doublefun(intn)
{
inti;
doubles=0.0;
for(i=1;i<=n;i++)
s=s+(1.0/(2*i-1)-1.0/(2*i));/*计算S=(1-1/2)+(1/3-1/4)+(1/(2n-1)-1/2n)*/
returns;
}
9.请编写函数fun,其功能是:
计算并输出下列多项式的值。
例如,在主函数中从键盘为n输入50后,输出为S=1.718282。
doublefun(intn)
{
doublesum=0,tmp=1;
inti;
for(i=1;i<=n;i++)
{
tmp=tmp*i;
sum+=1.0/tmp;
}
returnsum;
}
10.请编写函数fun,该函数的功能是:
计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。
例如,若主函数中从键盘给n输入20后,则输出为S=0.583333。
doublefun(intn)
{
inti;
doublesum=0.0;
for(i=1;i<=n;i++)
if(i%5==0||i%9==0)
sum+=1.0/i;
returnsum;
}
11.请编写函数fun,该函数的功能是:
计算并输出
S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5)
的值。
例如,若主函数从键盘给n输入20后,则输出为S=534.188884。
doublefun(intn)
{
inti;
doubles=0.0,s1=0.0;
for(i=1;i<=n;i++)
{s1=s1+pow(i,0.5);/*求每一项*/
s=s+s1;/*按公式求出s*/
}
returns;
}
12.编写函数fun,其功能是:
根据以下公式求P的值,结果由函数值带回。
m与n为两个正整数且要求m>n。
例如:
m=12,n=8时,运行结果为495.000000
longjc(intm)
{
longs=1;
inti;
for(i=1;i<=m;i++)s=s*i;
returns;
}
floatfun(intm,intn)
{
floatp;
p=1.0*jc(m)/jc(n)/jc(m-n);
returnp;
}
13.请编写函数fun,其功能是:
计算并输出下列多项式的值。
S=1/(1×2)+1/(2×3)+…+1/(n×(n+1))
例如,当n=10时,函数值为0.909091。
doublefun(intn)
{
inti;
doubles=0.0;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1));/*求级数的和*/
returns;
}
14.请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。
S=1+x+x2/2!
+x3/3!
+…+xn/n!
例如,当n=10,x=0.3时,函数值为1.349859。
doublefun(doublex,intn)
{
inti;
doubles=1.0,s1=1.0;
for(i=1;i<=n;i++)
{s1=s1*i;/*各项中的阶乘*/
s=s+pow(x,i)/s1;/*按公式求出*/
}
returns;
}
15.编写函数fun,其功能是:
求出1~1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
voidfun(int*a,int*n)
{
inti,j=0;
for(i=1;i<=1000;i++)/*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/
if((i%7==0||i%11==0)&&i%77!
=0)
a[j++]=i;
*n=j;
}
16.编写函数fun,它的功能是:
求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。
例如,若n为1000时,程序输出应为:
s=153.909064。
doublefun(intn)
{
doublesum=0.0;
inti;
for(i=21;i<=n;i++)
if((i%3==0)&&(i%7==0))sum+=i;
returnsqrt(sum);
}
17.编写函数fun,其功能是:
将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:
4 6 8 9 10 12 14 15 16。
voidfun(intm,int*k,intxx[])
{
inti,j,n=0;
for(i=4;i {for(j=2;j if(i%j==0)break; if(j } *k=n;/*返回非素数的个数*/ } 18.请编写函数fun,其功能是: 计算并输出3~n之间所有素数的平方根之和。 例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。 doublefun(intn) { intm,k,i; doubles=0.0; for(m=3;m<=n;m++) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) s+=sqrt(m); } returns; } 19.编写函数intfun(intlim,intaa[MAX]),其功能是求出小于或等于lim的所有素数并放在aa数组中,并返回所求出的素数的个数。 intfun(intlim,intaa[MAX]) { inti,j,k=0; for(i=2;i<=lim;i++)/*求出小于或等于lim的全部素数*/ {for(j=2;j if(i%j==0)break; if(j>=i) aa[k++]=i;/*将求出的素数放入数组aa中*/ } returnk;/*返回所求出的素数的个数*/ } 20.冒泡法从小到大排序 for(i=0;i { for(j=0;j { if(array[j+1] { t=array[j+1]; array[j+1]=array[j]; array[j]=t; } } } 21.编写函数fun,其功能是: 求Fibonacci数列中大于t的最小的数,结果由函数返回。 Fibonacci数列F(n)的定义为: F(0)=0,F (1)=1 F(n)=F(n-1)+F(n-2) 例如,当t=1000时,函数值为1597。 intfun(intt) { intf0=0,f1=1,f; do{ f=f0+f1; f0=f1; f1=f; }while(f returnf; } 10个学时,考前公共基础 二级c语言题型: 100分 40分选择题: 40个 其中,1-10题公共基础8分以上 11-40题c语言22分以上 60分操作题: 3个 程序填空题: 18分,3个空 12分以上 程序修改题: 18分,2-3行错误 18分 程序设计题: 24分 0-24分 1 10个学时,考前公共基础 二级c语言题型: 100分 40分选择题: 40个 其中,1-10题公共基础8分以上 11-40题c语言22分以上 60分操作题: 3个 程序填空题: 18分,3个空 12分以上 程序修改题: 18分,2-3行错误 18分 程序设计题: 24分 0-24分 c语言的核心: 地址和值 第一章c语言概述 考点1.c语言程序的构成 语法严谨,使用灵活的语言 c语言源程序由函数构成 函数: 和数学的函数不同 程序段 函数又分为两部分: 函数头: 英文单词(参数) 函数体: 函数头后面的大括号里的内容 {} main() {inta=9; printf("%d",a);} 定义函数: 函数头+函数体 使用函数(调用函数): 函数头 main函数: 主函数,每个c语言源程序必须有一个main函数,且只能有一个main函数。 每个c语言源程序都从main函数开始执行,且都在main函数的最后结束。 一个源程序可能有多个文件组成 考试只考一个文件里有一个源程序 下列叙述中错误的是( )。 A)C程序可以由多个程序文件组成 B)一个C语言程序只能实现一种算法 C)C程序可以由一个或多个函数组成 D)一个C函数可以单独作为一个C程序文件存在 B 选择题技巧: 绝对选项一般错 委婉选项一般对 对于一个正常运行的C程序,以下叙述中正确的是 A)程序的执行总是从main函数开始,在程序的最后一个函数中结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 C c语言的语句简称c语句,一定用英文分号;结束 以下叙述中正确的是 A)C语句必须在一行内写完 B)C程序中的每一行只能写一条语句 C)C语言程序中的注释必须与语句写在同一行 D)简单C语句必须以分号结束 D 注释: 解释说明的 /*fdsfsdfsdfsd*/ 考点2c程序的生成过程 源程序(文件)*.c——编译 目标程序(文件)*.obj——链接 可执行程序(文件)*.exe——运行 ——看到程序结果 以下叙述中错误的是 A)C程序在运行过程中所有计算都以二进制方式进行 B)C程序在运行过程中所有计算都以十进制方式进行 C)所有C程序都需要编译链接无误后才能运行 D)C程序中字符变量存放的是字符的ASCII值 B 选择题技巧: 相同选项同时排除 相近选项解在其中 相反选项解在其中 以下叙述中错误的是( )。 A)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 D)C语言源程序经编译后生成后缀为.obj的目标程序 A 考点3标识符 标识符: 给c程序里的东西起的名字,包括系统标识符和用户标识符。 用户标识符: 遵守以下规则: 1.必须以字母或下划线开头 2.只能包含字母、数字和下划线 3.不能和系统标识符同名 4.区分大小写字母 以下选项中不合法的标识符是( )。 A)&a B)FOR C)print D)_00 A 以下选项中,不合法的C语言用户标识符是 A)a_b B)AaBc C)a--b D)_1 C 考点4整型常量(重点进制转换) 整型常量就是整数,包括正整数,0和负整数 按进制分类,分为十进制,八进制和十六进制 进制: 进位的制度 n进制: 逢n进1 从0开始 十进制: 012345 678910 二进制: 011011100101 110111100010011010 八进制: 0123456710 ...15161720 十六进制: 012345678 9ABCDEF10 进制转换的方法很多,通过二进制转换最简单 二进制转十进制: 二进制从右到左的每一位,都对应十进制的2的n次方,n从0开始。 二进制的0代表无,1代表有,只需把1对应的2的n次方相加即可。 10010=16+2=18 10111.11=23.75 十进制转二进制: 19-16=3-2=1 19=16+2+1=10011 2 二进制转八进制: 从右往左三位变一位,421法 10010110=010010110=226 八进制转二进制: 一位变三位,421法 6452=110100101010 =110100101010 24=010100=10100 二进制转十六进制: 从右往左四位变一位,8421法 1001011110=001001011110 =25E 十六进制转二进制: 一位变四位,8421法 E32F=1110001100101111 =1110001100101111 C源程序中不能表示的数制是( )。 A)十六进制 B)八进制 C)十进制 D)二进制 D 源程序中不直接支持二进制 在源程序中,十进制正常写,八进制整型常量前面加个0,十六进制整型常量前面加个0x或者0X 以下选项中,合法的数值型常量是 A)3.1415 B)"A" C)092 D)0xDH A 考点5实型常量 也称为浮点型常量,就是带小数点的数值,都是十进制,0可以省略 0.125=.125 科学计数法: 2.3E4表示2.3乘以10的4次方 E和e都可以表示 E或者e的后面一定是整数 以下选项中合法的实型常量是 A)0 B)3.13e-2.1 C).914 D)2.0*10 C 考点6字符型常量 字符: 字母,符号,不参与计算的数字 每个字符都有一个ASCII码值 字符型常量(一个字符)在源程序中用英文单引号括起来'3''2''A''[' '0'的ASCII码是48 'A'的ASCII码是65 'a'的ASCII码是97 ASCII码用八进制表示: '\123''\042''\65' ASCII码用十六进制表示: '\xD3''\x80' 转义字符: 有特殊含义的字符 '\n'表示光标换行 还有三个符号在源程序中有特殊含义,单引号'双引号"斜线\ 单引号': 把单个字符括起来 双引号": 把多个字符括起来 斜线\: 转义字符开头 要单引号本身: '\'' 要双引号本身: '\"' 要斜线本身: '\\' 以下不合法的字符常量是 A)'\\' B)'\"' C)'\018' D)'\xcc' C 上面说的三种常量都是"值型"常量 如果用"",里面一定是多个字符 "abde"是4个字符的内容,但是占用5个空间。 因为在每个字符串的最后,都会自动加上一个'\0'表示字符串的结束。 以下正确的字符串常量是 A)"\\\" B)'abc' C)OlympicGames D)"" D "443f\54\\\'98" 字符串内容是9个字符,占用10个空间 考点7整型变量 变量: 一个内存空间 常量是内容,变量是空间 变量里面存放同类型的常量 整型变量里面只能存放整型常量 其他类型同理 main() {inta=8; /*把8放在整型变量a里面*/ printf("%d",a); } c语言中,任何东西都要先定义再使用 printf: 从内存里往屏幕上输出 %d: 十进制整数的形式 %o: 八进制整数的形式 %x: 十六进制整数的形式 源程序中: 十进制常量: 9 八进制常量: 011 十六进制常量: 0x9或者0X9 十进制ASCII码值: 9 八进制ASCII码值: '\11'或'\011' 十六进制ASCII码值: '\x9'或'\x09' printf中十进制形式: %d printf中八进制形式: %o printf中十六进制形式: %x 整型变量的分类: 按存储空间大小分类: 分为短整型(1个字节),整型(4个字节),长整型(4个字节) 1字节=8位 1Byte=8bit 常量可以是无符号常量,一定是非负数unsigned 整型变量也分为有符号整型变量和无符号的整型变量 以下非法的定义语句是 A)longb=0L; B)unsignedinta=-100u; C)shortc2=0123; D)intd=0x0; B L结束的常量表示长整型常量 考点8浮点型变量 浮点型变量也就是实型变量 里面只存放浮点型常量 浮点型变量分为两种: 单精度浮点型变量(4字节)和双精度浮点型变量(8字节) floata=9.0;定义单精度 doubleb=9.0;定义双精度 设有定义: doublex=2.12;,以下不能完整输出变量x值的语句是 A)printf("x=%5.0f\n",x); B)printf("x=%f\n",x); C)printf("x=%lf\n",x); D)printf("x=%0.5f\n",x); A %f和%lf都是浮点型形式输出,默认小数点后6位 BC选项输出结果: x=2.120000 %5.0f: 一共至少占5位,如果不足5位,左面补空格(右对齐),小数点后面必须占0位 A选项输出: x=2 %0.5f: 一共至少占0位。 小数点后面必须占5位 D选项输出: x=2.12000 %3d: 一共至少占3位,不足3位左补空格 %-3d: 一共至少占3位,不足3位右补空格 考点9字符型变量 占1个字节 字符型变量里面存放字符型常量的ASCII码值 chara='a'; 若有以下程序 #include main() {charc1,c2; c1='C'+'8'-'3';c2='9'-'0'; printf("%c%d\n",c1,c2);}53+67=120 则程序的输出结果是 A)H'9' B)H9 C)F'9'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 不适 合用 技巧 编程