C语言习题Word文档格式.docx
- 文档编号:3837096
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:36
- 大小:22.69KB
C语言习题Word文档格式.docx
《C语言习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言习题Word文档格式.docx(36页珍藏版)》请在冰点文库上搜索。
\n"
for(int
j=0;
j<
10;
j++)
%6d%6d%6d%6d\n"
myNode[j].a,myNode[j].b,myNode[j].c,myNode[j].d);
}
//释放内存
free(myNode);
work4
//临时.cpp:
定义控制台应用程序的入口点。
//
#include\"
stdafx.h\"
int_tmain(intargc,_TCHAR*argv[])
intnum,N,num1,num2,num3,num4,num5;
printf(\"
请输入一个不超过五位的整数:
\"
scanf(\"
%d\"
&
num);
if(num>
99999||num<
1)
输入无效\"
else{if(num>
9999)
N=5;
999)
N=4;
99)
N=3;
9)
N=2;
else
N=1;
}
num1=num/10000;
num2=(num%10000)/1000;
num3=(num%1000)/100;
num4=(num%100)/10;
num5=num%10;
它是%d位数\"
N);
\\n每位数为:
%d,%d,%d,%d,%d\\n\"
num1,num2,num3,num4,num5);
if(N==5)
逆序数为:
%d%d%d%d%d\"
num5,num4,num3,num2,num1);
if(N==4)
%d%d%d%d\"
num5,num4,num3,num2);
if(N==3)
%d%d%d\"
num5,num4,num3);
if(N==2)
%d%d\"
num5,num4);
if(N==1)
num5);
return0;
作业标题:
03.switch与简单循环
1.用户输入年和月,用switch语句实现显示该月有多少天
2.编写程序打印如下图形共五行
*
**
***
****
*****
3.编写程序让用户输入月日,计算该天是该年的第多少天。
(不考虑闰年)
Work1
//月份问题.cpp:
intyear,month;
请输入年份,月份:
\\n\"
%d,%d\"
year,&
month);
if(month!
=2)
{
switch(month)
case1:
case3;
case5:
case7:
case8:
case10:
case12:
printf(\"
该月有31天\\n\"
break;
case4:
case6:
case9:
case11:
该月有30天\\n\"
else
if(year%400==0||(year%4==0&
&
year%100!
=0))
该月有29天\\n\"
该月有28天\\n\"
Work2
//5行星星.cpp:
inti=1,j,g;
while(i<
=5)
j=1;
while(j<
=(5-i))
\"
j++;
g=1;
while(g<
=i)
*\"
g++;
i++;
Work3
//日数问题.cpp:
intmonth,day,N;
请输入月,日:
month,&
day);
N=day;
case2:
N=31+day;
case3:
N=31+28+day;
N=31*2+28+day;
N=31*2+28+30+day;
N=31*3+28+30+day;
N=31*3+28+30*2+day;
N=31*4+28+30+2+day;
N=31*5+28+30*2+day;
N=31*5+28+30*3+day;
N=31*6+28+30*3+day;
N=31*6+28+30*4+day;
%d月%d日是第%d天\\n\"
month,day,N);
07.循环与数组
1。
.编写程序对10个整数进行排序(从小到大,选择排序)
2.编写程序将整型数组中10个元素先后顺序颠倒存储
3.编写程序计算一个3*3矩阵每行每列和对角线的和
4。
公园前5世纪,我国数学家张丘建在《算经》中提出百钱百鸡问题:
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、母、雏各几何?
附加题
1.已知2010年1月1日是星期五,编写程序计算用户输入的一个日期的星期号
作业内容:
(附件:
无)
//排序.cpp:
#include<
intnum[10];
inti,j,t;
for(i=0;
i<
=9;
i++)
{
num[i]=rand();
%d\\n\"
num[i]);
for(j=0;
if(num[i]<
num[j])
t=num[i];
num[i]=num[j];
num[j]=t;
排序后数列为:
//颠倒.cpp:
intnum[10];
inti,j;
{num[i]=rand();
颠倒后排列顺序为:
for(i=9;
i>
=0;
i--)
//矩阵.cpp:
intnum[3][3];
intsumline[3]={},sumrow[3]={},sum=0;
for(i=0;
=2;
for(j=0;
num[i][j]=rand();
%8d\"
num[i][j]);
sumline[i]=sumline[i]+num[i][j];
\\n第%d行的和为:
i+1,sumline[i]);
sumrow[j]=sumrow[j]+num[i][j];
\\n第%d列的和为:
j+1,sumrow[j]);
sum=sum+num[i][i];
\\n对角线和为%d:
sum);
//百鸡问题.cpp:
intcock,hen,chicken;
for(cock=0;
cock<
=20;
cock++)
for(hen=0;
hen<
=33;
hen++)
chicken=(100-cock-hen);
if(100==(5*cock+3*hen+chicken/3.0))
百钱买百鸡,公鸡%d只,母鸡%d只,鸡雏%d只。
cock,hen,chicken);
//指针回文.cpp:
#include"
stdafx.h"
intjudge(char*src1,char*src2);
voidchange(char*pointer);
/*=========================================
本程序用于判断字符串是否是回文
字符数组:
str
用于判断结果的整形变量:
result:
1:
是回文串;
0:
不是回文串;
指针变量:
*p1:
从字符串开头检索;
*p2:
从字符串结尾检索
============================================*/
charstr[20];
intresult;
char*p1,*p2;
printf("
请输入一个字符串:
gets(str);
p1=str;
p2=str;
while(*p2!
='
\0'
)
p2++;
p2--;
result=judge(p1,p2);
if(result==1)
printf("
是回文串\n"
不是回文串\n"
本函数用于判断字符串是否是回文
形式参数:
*src1,*src2;
实际参数:
p1,p2;
返回值:
是回文串:
1;
不是回文串:
0;
intjudge(char*src1,char*src2)
while(src1<
src2)
while(*src1<
65||(*src1>
90&
*src1<
97)||*src1>
122)
{
src1++;
}
while(*src2<
65||(*src2>
*src2<
97)||*src2>
src2--;
change(src1);
change(src2);
if(*src1==*src2)
else
break;
if(src1>
=src2)
return1;
return0;
本函数用于对字符大小写进行转换统一
pointer
src1,src2
voidchange(char*pointer)
if(*pointer>
=65&
*pointer<
=90)
*pointer=*pointer+32;
17.结构体初步
1.设有结构体描述如下:
structperson
charname[10];
intsex;
//0表示男生,1表示女生
intage;
在本次的作业的附件中存储了10个该结构体的数据,该文件是二进制文件,要求:
1)读取出这10个数据,并在屏幕上显示
2)计算出他们的平均年龄
3)删除年龄最大和最小的两位
4)将处理完的数据写入到一个文本文件中,要求,每行存一个人的信息,姓名站10列,性别显示为“男”或者“女”,年龄占5列,左对齐。
2.编写一个通讯录程序
要求
1)提供添加、删除、修改和清除的功能
2)通讯录人数不超过80人
3)通讯录保存在二进制文件中
4)程序界面友好,函数设计合理
//结构体.cpp:
string.h>
#defineLENsizeof(structperson)
voidmax(structpersonper[]);
voidmin(structpersonper[]);
voidsave();
floataver_age=0;
structpersonper[10];
/*=======================================
本函数用于对一组学生数据进行处理
目标文件:
1947.dat以二进制形式打开
========================================*/
inti;
FILE*fp;
fp=fopen(\"
d:
\\\\1947.dat\"
\"
rb\"
if(fp==NULL)
cannotopen!
fread(&
per[i],LEN,1,fp);
%10s%4d%4d\\n\"
per[i].name,per[i].sex,per[i].age);
fclose(fp);
aver_age=aver_age+per[i].age;
aver_age=aver_age/10.0;
max(per);
min(per);
save();
本函数用于对数据中最大年龄者数据进行删除
变量:
i;
num:
确定最值数据
voidmax(structpersonper[])
intnum=0;
inttemp=per[0].age;
if(temp<
per[i].age)
temp=per[i].age;
num=i;
for(i=num;
=8;
per[i]=per[i+1];
本函数用于对数据中最小年龄者数据进行删除
voidmin(structpersonper[])
if(temp>
=7;
本函数用于对数据结果进行保存
目的文件:
\\\\123.txt
voidsave()
FILE*fp2;
fp2=fopen(\"
\\\\123.txt\"
w+\"
if(fp2==NULL)
cannotopenfile\"
return;
fprintf(fp2,\"
平均年龄为%f\\n\\n\\n\"
aver_age);
if(per[i].sex==1)
%-10s女%-5d\\n\"
per[i].name,per[i].age);
%-10s男%-5d\\n\"
fclose(fp2);
//电话簿.cpp:
chartel[20];
charadd[50];
structperson*next;
structperson*head=NULL;
structperson*open();
//打开并读入
voidprint(structperson*head);
voidreserve(structperson*head);
//保存修改
intmenu();
//菜单
structperson*insert(structperson*head);
//添加
structperson*dele(structperson*head);
//删除
structperson*revise(structperson*head);
//修改
structperson*remove(structperson*head);
//清除
intchose;
do{
head=open();
print(head);
chose=menu();
switch(chose)
case1:
head=insert(head);
case2:
head=dele(head);
case3:
head=revise(head);
case4:
head=remove(head);
case5:
return0;
reserve(head);
}while
(1);
读取源通讯录
=======================================
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题
![提示](https://static.bingdoc.com/images/bang_tan.gif)