C语言Word格式文档下载.docx
《C语言Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言Word格式文档下载.docx(33页珍藏版)》请在冰点文库上搜索。
![C语言Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/d7bb7e7b-a496-49d8-94ba-e9beaef1d97f/d7bb7e7b-a496-49d8-94ba-e9beaef1d97f1.gif)
。
总分在180分以上为'
,160~179分为'
,140~159分为'
,120~139分为'
,120分以下为'
{inta,b;
请输入两门课的成绩(百分制):
"
%d%d"
a,&
b);
if(a<
0||a>
100||b<
0||b>
100)
输入错误(成绩应为百分制)!
{switch((a+b)/20)
{case20:
case19:
case18:
%d--->
A"
a+b);
break;
case17:
case16:
B"
case15:
case14:
C"
case13:
case12:
D"
default:
E"
}
}
if(sports=='
Y'
||sports=='
y'
)h1=0.02;
if(diet=='
||diet=='
)h2=0.015;
孩子身高为:
%.2f(cm)"
h*(1+h1+h2));
}/*题目:
3
在[200,900]范围内同时满足以下两个条件的十进制数:
(1)其个位数字与十位数字之和除以10所得的余数是百位数字;
(2)该数为素数;
问:
有多少个这样的数,并逐一显示(每行显示5个)。
math.h>
{inti,j,m,a,b,c,flag;
m=0;
for(i=201;
i<
900;
i+=2)
{a=i/100;
b=i/10%10;
c=i%10;
if((b+c)%10==a)
{flag=1;
for(j=2;
j<
=(int)sqrt(i);
j++)
if(i%j==0)
{flag=0;
}
if(flag==1)
{printf("
%4d"
i);
m++;
if(m%5==0)printf("
\n"
这样的数有%d个"
,m);
4
/*编程输出如下上三角形式的九九乘法表。
123456789
---------
4681012141618
9121518212427
162024283236
2530354045
36424854
495663
6472
81
{inti,j;
for(i=1;
10;
i++)
%-4d"
%-4c"
'
-'
{for(j=1;
i;
'
for(j=i;
i*j);
5
/*打印fabonacci数列的前20项,该数列前两项为1,以后各项均为前相邻两项之和*/
{intfa[20];
inti;
fa[0]=fa[1]=1;
for(i=2;
20;
fa[i]=fa[i-1]+fa[i-2];
fabonacci数列的前20项\n"
for(i=0;
%-6d"
fa[i]);
if((i+1)%5==0)printf("
6
/*从键盘输入一个班学生(最多30人)的成绩,然后按降序进行排列*/
#defineN30
{doubles[N],t;
intn,i,j;
请输入学生人数:
%d"
n);
n;
请输入第%d个学生的成绩:
i+1);
s+i);
n-1;
for(j=i+1;
if(s[i]<
s[j])
{t=s[i];
s[i]=s[j];
s[j]=t;
\n降序排序后成绩\n"
%.2f\n"
s[i]);
7
for(j=0;
n-1-i;
if(s[j]<
s[j+1])
{t=s[j];
s[j]=s[j+1];
s[j+1]=t;
8
intn,i,j,k;
{k=i;
if(s[k]<
s[j])k=j;
if(k!
=i)
{t=s[k];
s[k]=s[i];
s[i]=t;
9
/*编写一个程序,利用字符数组实现两个字符串的比较。
#defineN80
intstrbj(chars1[],chars2[])
{inti=0;
while(s1[i]==s2[i])
if(s1[i]=='
\0'
)
return0;
i++;
returns1[i]-s2[i];
{chars1[N],s2[N];
intk;
请输入第一个字符串"
gets(s1);
请输入第二个字符串"
gets(s2);
k=strbj(s1,s2);
if(k>
0)
%s>
%s"
s1,s2);
elseif(k<
%s<
%s=%s"
10
/*编写程序,输出2~n之间的所有素数,n由键盘输入。
要求判断素数的过程要写在函数中,由主函数调用实现,并写出2组以上程序运行结果。
intsushu(intm)
{inti;
(int)sqrt(m);
if(m%i==0)return0;
return1;
{intn,i,count=0;
inputn:
"
2~%d之间的素数有:
n);
=n;
if(sushu(i)==1)
{count++;
%-6d"
if(count%5==0)printf("
11
/*编程实现输入8个学生某门功课的成绩,用函数求出平均分,并在主函数中输出平均分以及高于平均分的同学的成绩。
#defineN8
doubleaver(doubles[])
doublesum=0;
N;
sum+=s[i];
returnsum/N;
{doubles[N],a;
平均分为:
a=aver(s));
高于平均分的成绩有\n"
if(s[i]>
a)printf("
%.2f"
12
/*下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。
形参n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even返回偶数之和。
#defineN10
voidfun(int*a,intn,int*odd,int*even)
*odd=*even=0;
if(*(a+i)%2==0)
*even+=*(a+i);
*odd+=*(a+i);
{
inta[N]={1,10,2,3,19,6},i,n=6,odd,even;
Theoriginaldatais:
%5d"
*(a+i));
\n\n"
fun(a,n,&
odd,&
even);
Thesumofoddnumbers:
%d\n"
odd);
Thesumofevennumber:
even);
13
/*编程实现从键盘输入一个字符ch和一个字符串str,利用字符指针实现
删除字符串str中和字符ch相等所有字符,然后输出字符串str。
voiddele(char*s,charch)
{char*q;
q=s;
while(*s!
='
{if(*s!
=ch)
{*q=*s;
q++;
s++;
*q='
;
{charstr[N],ch;
请输入字符串:
gets(str);
请输入要删除的字符:
ch=getchar();
dele(str,ch);
删除%c后的字符串为\n"
ch);
puts(str);
14
/*某单位进行选举,有5位候选人:
zhang、wang、li、zhao、liu。
编写一个统计每人得票数的程序。
要求每个人的信息使用一个结构体表示,5个人的信息使用结构体数组。
structusr
{charname[50];
intnum;
};
{inti,n;
structusruser[5]={{"
zhang"
0},{"
wang"
li"
zhao"
liu"
0}};
请输入选票,5位选手的编号分别是1、2、3、4、5,当输入非选手编号时输入结束:
while(n==1||n==2||n==3||n==4||n==5)
{user[n-1].num++;
5;
%s得票:
user[i].name,user[i].num);
15
/*设张三20岁、李四22岁、王平23岁,编程输出3人中年龄最小者的姓名和年龄*/
intage;
structusruser[3]={{"
张三"
20},{"
李四"
22},{"
王平"
23}};
j=0;
3;
{if(user[i].age<
user[j].age)
j=i;
年龄最小的是%s,年龄%d岁\n"
user[j].name,user[j].age);
16
/*编写一个程序,将5个字符串写入文件中。
stdlib.h>
charstr[100];
FILE*fp;
fp=fopen("
text.txt"
"
w"
if(fp==NULL)
不能打开这个文件"
exit(0);
请输入5个字符串:
{scanf("
%s"
str);
fprintf(fp,"
%s\n"
fclose(fp);
}
17
/*根据程序提示从键盘输入一个已存在的文本文件的完整文件名,再输入一个新文本文件的完整文件名,
然后将已存在的文本文件中的内容全部复制到新文本文件中*/
{charch,frname[50],fwname[50];
FILE*fr,*fw;
请输入原文件名:
frname);
请输入新文本文件名:
fwname);
fr=fopen(frname,"
r"
if(fr==NULL)
不能打开%s文件"
fw=fopen(fwname,"
if(fw==NULL)
ch=fgetc(fr);
while(!
feof(fr))
{
fputc(ch,fw);
fclose(fr);
fclose(fw);
改后的
修改原因
2.程序编译(compile)
拼写错误
中所涉及的各种对象为主要考虑因素。
用词错误
数的前缀字符0x,x前面是数字0而不是字符o),由数字0~9、字母A~F或a~f组成。
描述更准确一些
C语言中,用编译预处理命令#define(第6章介绍)来定义符号变量。
⑤在一个程序的同一个语句块中变量不允许重复定义。
内存空间为1字节,取值范围为-128~127。
自右至左
见文档“2.图表和代码的更改”
删除这句话
数为pow(x,y),
漏掉,y
而操作数中至少有一个为实型数据时,择结果为双精
运算b%2!
=0的结果为1,得表达式0&
&
1③逻辑运算0&
1的结果为0,即整个表达式的计算结果为0。
例2.19假设有整型变量a=2,b=1和x,计算表达式a<
b?
(x=5):
a>
(x=6):
(x=7)的值。
根据条件运算符的右结合性,计算表达式a<
(x=7)的值,相当于计算表达式a<
(a>
(x=7))的值。
根据优先级,应首先计算a>
此表达式也是一个条件表达式,因表达式a>
b为“真”,所以表达式的值为6(x=6);
于是表达式a<
(x=7))化简为a<
6,因表达式a<
b为“假”,故整个表达式的值为6。
表达式2是a+10
/*将变量c转换成单精度型再与4相除(强制类型转换的操作数是c)*/
求表达式(float)c/4的值,
则sizeof(x)=4,sizeof(z)=4,sizeof(x+y)=4,sizeof(double)的值
删除等号
以指数形式输出实数(隐含6位小数,共13位)
表2-7printf函数常用的格式符
floatr,h,v,s;
/*定义r,h,v,s为单精度实型变量*/
floata,b,c,p,s;
/*定义a,b,c,p,s为单精度实型变量*/
值小32,即'
+32会得到小写字母e的ASCII码值101。
4.下列可以正确表示字符常量的是()。
从第3章开始,为了节省篇幅省略了
printf("
max=%d\n"
b);
/*若a≤b,则输出b的值*/
floatscore;
/*定义实型变量score,用以表示成绩*/
y=3*x+5;
/*若x≥2,则y=3x+5*/
x2=-1.500000-1.658312i
case8:
%d:
B\n"
score);
/*80≤score<
90,等级为B*/
grade=10或9、grade=8、grade=7、grade=6、grade=5或4、3、2、1、0
与下面的横线连接起来
divisoriszero!
/*若除数为0,则输出提示信息*/
删除选项
1.判断字符型变量ch为小写字母的表达式是。
floati=1,temp=1,sum=0;
/*定义实型变量i、temp、sum,并对其赋初值*/
通过该例题希望大家掌握正负相间问题的处理方法。
这里sign是每一项的符号,循环体内的语句sign=-sign,每循环一次改变一次符号。
sign的初值等于1,循环一次,执行sign=-sign,sign变成-1,再循环一次,执行sign=-sign,sign又变成1。
这样一正一负可以处理像这样正负相间的问题。
sum=5050
floatscore,sum=0,ave;
删除注释
i=1
floatscore,max,min;
/*定义实型变量score,max,min*/
图4-11(a)中输出i的值框后面有箭头线→,与右边的线连接
菱形框i<
=100右边箭头的Y改为N,下边箭头的N改为Y
i%9=0
if(b>
5)/*若b>
5,则结束整个循环*/
for(j=1;
j