C语言基础代码Word文件下载.docx
- 文档编号:19767268
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:16
- 大小:26.35KB
C语言基础代码Word文件下载.docx
《C语言基础代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言基础代码Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
main()
{intgrade;
inputgrade="
);
%d"
,&
grade);
switch((int)(grade/10))
{case10:
case9:
A\n"
break;
case8:
B\n"
case7:
C\n"
case6:
D\n"
default:
E\n"
}
}
4、求1+2+……+100的和,分别用while、do…while和for语句实现
(1)while
voidmain()
{intsum=0,i=1;
while(i<
=100)
{sum=sum+i;
i++;
sum=%d\n"
sum);
(2)do…while
voidmain()
{
intsum=0,i=1;
do
{sum=sum+i;
}while(i<
=100);
(3)for
#include<
intsum=0,i;
for(i=1;
i<
=100;
i++)
sum=sum+i;
printf("
5、输入10个数,用冒泡法对这10个数由小到大排序。
{inta[10];
inti,j,t;
input10numbers:
\n"
for(i=0;
10;
i++)
//数组输入
%d"
a[i]);
for(j=0;
j<
9;
j++)/*进行9次循环,实现9趟比较*/
for(i=0;
9-j;
i++)/*在每趟中进行9-j次比较*/
if(a[i]>
a[i+1])/*相邻两个数进行比较*/
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}/*满足条件进行互换*/
thesortednumbers:
i++)//数组输出
%d"
a[i]);
6、选择排序
inti,j,min,temp;
inta[10]={6,90,45,56,1,15,44,78,58,101};
//为数组赋初值
//或键盘输入
/*printf("
enterdata:
i++)//输入10个数
a[%d]="
i);
scanf("
i++)//输出10个数
%5d"
*/
min=i;
for(j=i+1;
=9;
j++)
{
if(a[min]>
a[j])
min=j;
}
temp=a[i];
a[i]=a[min];
a[min]=temp;
\nThesortednumbers:
i++)//输出排序后的10个数
getchar();
7、//编一程序,将两个字符串连接起来。
不要用函数strcat
chars1[80],s2[40];
inti=0,j=0;
\ninputstring1:
%s"
s1);
inputstring2:
s2);
while(s1[i]!
='
\0'
)
while(s2[j]!
s1[i++]=s2[j++];
s1[i]='
;
Thenewstringis:
%s\n"
8、函数1:
(参数为值传递)
voidmain()
{intmax(intx,inty);
inta,b,c;
%d%d"
c=max(a,b);
printf(“max=%d\n”,c);
intmax(intx,inty)
{intz;
if(x>
y)z=x;
elsez=y;
returnz;
9、函数2:
(参数为地址传递)
有一维数组score,内放10个学生成绩,定义函数average求平均成绩。
{floataverage(floatarray[10]);
floatscore[10],aver;
inti;
input10scores:
%f"
score[i]);
aver=average(score);
averagescoreis%5.2f\n"
aver);
floataverage(floatarray[10])
{inti;
floataver,sum=array[0];
for(i=1;
sum=sum+array[i];
aver=sum/10;
return(aver);
10、对输入的两个整数按大小顺序输出,用指针变量作函数的参数。
(地址传递)
{voidswap(int*p1,int*p2);
inta,b;
int*pointer_1,*pointer_2;
pointer_1=&
a;
pointer_2=&
b;
if(a<
b)swap(pointer_1,pointer_2);
/*调用函数后,a,b的值进行了交换*/
%d,%d\n"
a,b);
//等价于:
*pointer_1,*pointer_2);
voidswap(int*p1,int*p2)
{inttemp;
temp=*p1;
*p1=*p2;
*p2=temp;
11、有一整型数组a,有10个元素。
要输出各元素的值有三种方法
(1)下标法
{inta[10];
(2)通过数组名计算出数组元素的地址,找出数组元素的值。
voidmain()
*(a+i));
⑶用指针变量指向数组元素
int*p,i;
for(p=a;
p<
(a+10);
p++)
*p);
上述3种方法中有关数组元素的输入也可用下列方法表示:
a+10;
p++)
p);
12、输入两个学生学号、姓名和成绩,输出成绩较高的学生的学号、姓名和成绩。
#include<
{structstudent
{intnum;
charname[20];
intscore;
}s1,s2;
%d%s%d"
s1.num,s1.name,&
s1.score);
s2.num,s2.name,&
s2.score);
numnamescore\n"
if(s1.score>
=s2.score)
%d%s%d\n"
s1.num,s1.name,s1.score);
%d%s%d"
s2.num,s2.name,s2.score);
}
13、有N个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序存储并输出各学生的信息。
string.h>
}s[6]={{1,"
aaa"
59},{2,"
bbb"
78},{3,"
ccc"
85},{4,"
ddd"
64},{5,"
eee"
98},{6,"
fff"
83}};
inti,j,max,temp;
chartemp_name[20];
for(i=0;
6;
{max=i;
=5;
{if(s[max].score<
s[j].score)
max=j;
/*temp_stu=s[i];
s[i]=s[max];
s[max]=temp_stu;
temp=s[i].num;
s[i].num=s[max].num;
s[max].num=temp;
strcpy(temp_name,s[i].name);
strcpy(s[i].name,s[max].name);
strcpy(s[max].name,temp_name);
temp=s[i].score;
s[i].score=s[max].score;
s[max].score=temp;
s[i].num,s[i].name,s[i].score);
14、从键盘输入4个学生的有关数据,然后把它们转存到磁盘文件上去。
#defineSIZE4
structstudent_type
{charname[10];
intnum;
intage;
charaddr[15];
}stud[SIZE];
{voidsave();
SIZE;
i++)/*从键盘输入*/
%s%d%d%s"
stud[i].name,&
stud[i].num,&
stud[i].age,stud[i].addr);
save();
voidsave()
{FILE*fp;
if((fp=fopen("
stu-list"
"
wb"
))==NULL)
{printf("
cannotopenfile\n"
return;
for(i=0;
if(fwrite(&
stud[i],sizeof(structstudent_type),1,fp)!
=1)
printf(“filewriteerror\n”);
/*出错*/
fclose(fp);
/*关闭文件*/
15、将以上数据读出并显示
{inti;
FILE*fp;
if((fp=fopen("
stu_list"
rb"
))==NULL)
{fread(&
stud[i],sizeof(structstudent_type),1,fp);
%-10s%4d%4d%-15s\n"
stud[i].name,stud[i].num,stud[i].age,stud[i].addr);
fclose(fp);
16、//有15个数按照从小到大的顺序存放在一个数组中。
输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。
如果该数不在数组中,输出“不在表中”
#defineN15
{inti,number,top,bott,mid,loca,flag=1,sign;
inta[N]={1,3,4,5,6,8,12,23,34,44,45,56,57,58,68};
charc;
N;
while(flag)
inputnumbertolookfor:
number);
sign=0;
top=0;
bott=N-1;
if((number<
a[0])||(number>
a[N-1]))
loca=-1;
while((!
sign)&
&
(top<
=bott))
{mid=(bott+top)/2;
if(number==a[mid])
{loca=mid;
printf("
Hasfound%d,itspositionis%d\n"
number,loca+1);
sign=1;
}
elseif(number<
a[mid])
bott=mid-1;
else
top=mid+1;
if(!
sign||loca==-1)
printf("
cannotfind%d.\n"
number);
continueornot(Y/N)?
%c"
c);
getchar();
if(c=='
N'
||c=='
n'
flag=0;
6
01234567891011121314
134568122334444556575868
7
134568122334444556575868
区分:
break语句跳出循环,用continue语句结束本次循环
(1)break:
判断整数m是否素数
#include<
math.h>
{intm,i,k;
输入一个整数:
m);
k=sqrt(m);
for(i=2;
=k;
if(m%i==0)break;
if(i>
=k+1)
%d是一个素数。
m);
else
%d不是一个素数。
(2)写出以下程序运行结果
intj;
for(j=1;
if(j%2==1)
printf(“D”);
else
continue;
printf(“B”);
printf(“P\n”);
答案:
DBDBDBP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基础 代码