c程序Word文档下载推荐.docx
《c程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c程序Word文档下载推荐.docx(62页珍藏版)》请在冰点文库上搜索。
![c程序Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/77b6b19f-eadf-40c1-8c37-b59d3a0b2c7e/77b6b19f-eadf-40c1-8c37-b59d3a0b2c7e1.gif)
if(x*x==i+100&
&
y*y==i+268)
%5d"
i);
3.输出打印九九乘法表。
voidmain()
inti,j,result;
10;
result=i*j;
%d*%d=%-3d"
i,j,result);
//-3d表示左对齐,占三位
4.请输入一个五位数,判断是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
#include<
longintm,a,b,c,d,e;
请输入一个五位整数:
scanf("
%d"
&
m);
a=m/10000;
b=m%10000/1000;
c=m%10000%1000/100;
d=m%10000%1000%100/10;
e=m%10000%1000%100%10;
if(a==e&
b==d)
是回文数。
else
不是回文数。
5.写一个函数,输入一行字符,将此字符串中最长的单词输出。
string.h>
intzifu(charc);
intlongest(char[]);
inti;
charline[100];
%请输入一行字符串:
gets(line);
%这一行字符串中最长的单词是:
for(i=longest(line);
zifu(line[i]);
%c"
line[i]);
intzifu(charc)
if((c>
='
a'
c<
z'
)||(c>
A'
Z'
))
return1;
intlongest(charstring[])
intlen=0,i,length=0,flag=1,place=0,point;
=strlen(string);
if(zifu(string[i]))
if(flag)
point=i;
flag=0;
len++;
flag=1;
if(len>
=length)
length=len;
place=point;
len=0;
return(place);
6.写一个判素数的函数,在主函数中输入一个整数,输出是否为素数的信息。
intsushu(intn)
inti,flag=1;
for(i=2;
n/2&
flag==1;
if(n%i==0)
return(flag);
intn;
请输入一个数:
n);
if(sushu(n))
%d是素数"
n);
%d不是素数"
7.写一个函数,输入一个十六进制数,输出相应的十进制数。
#defineMAX1000
intzhuanhuan(chars[])
inti,n;
n=0;
s[i]!
\0'
;
if(s[i]>
0'
s[i]<
9'
)
n=n*16+s[i]-'
f'
+10;
F'
returnn;
intc,i=0,flag=0,flag1=1;
chart[MAX];
请输入一个十六进制数:
while((c=getchar())!
MAX&
flag1)
t[i++]=c;
elseif(flag)
t[i]='
转换成十进制数后是%d\n"
zhuanhuan(t));
是否继续?
(y/n)\n"
c=getchar();
if(c=='
n'
flag1=0;
程序运行结束!
i=0;
8.编制程序,输入k(k>
0)个整数,输出其中第m个最大值,和第n个最小值。
#include<
inti,k,a[30];
intm,n;
请输入总的整数个数:
k);
请输入这%d个整数:
k);
k;
a[i]);
inttemp,j;
for(j=0;
k-1;
k-1-j;
if(a[i]>
a[i+1])
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
排序后的数字顺序是:
a[i]);
printf("
请输入你需要的最大值号码:
第%d个最大值是%d\n"
m,a[k-m]);
请输入你需要的最小值号:
第%d个最小值是%d\n"
n,a[n-1]);
9.编写程序,输入一个m*n的整数矩阵,输出其中所有不同元素值。
20602015
例如输入80203510
18201555
输出:
2060158035101855.
#defineM3
#defineN4
inta[M][N],b[M*N];
inti,j,k,n=0,flag;
Enter%d*%dinteger\n"
M,N);
M;
for(j=0;
N;
scanf("
a[i][j]);
b[n++]=a[0][0];
{
flag=1;
for(k=0;
n&
flag;
if(a[i][j]==b[k])
flag=0;
if(flag)
b[n++]=a[i][j];
}
Theresult\n"
n;
printf("
b[i]);
10.请输入M*N阶矩阵,然后按从小到大的顺序输出矩阵中不同的数。
例如,
20602015
输出后的数为10,15,18,20,35,55,60,80.
inti,j,k,n=0,temp=0,flag;
n-j;
if(b[i]>
b[i+1])
temp=b[i];
b[i]=b[i+1];
b[i+1]=temp;
11.输入8个正整数,要求输出其中的奇数及奇数个数。
inti,a[8],count=0;
请输入8个正整数:
8;
%奇数是:
if(a[i]%2!
=0)
printf(“奇数个数是:
12..输入一个3*3的矩阵,要求输出其中最小的数,并输出在哪行那列。
(若矩阵中有多个最小值,只输出第一个的行和列)
inta[3][3],i,j,k=0;
intb[9],min,flag;
请输入3*3的矩阵:
3;
b[k]=a[i][j];
k++;
min=b[0];
for(k=0;
9;
if(b[k]<
min)
min=b[k];
flag=k+1;
if(flag%3==0)
i=flag/3;
j=3;
if(flag%3!
i=flag/3+1;
j=flag%3;
最小的数是%d:
min);
最小的数在第%d行第%d列:
i,j);
13.输入二叉树,求先中后序遍历,输出结果。
#defineSTACK_INIT_SIZE100/*定义栈的初始化大小*/
#defineSTACKINCREMENT10/*定义栈的增长长度*/
#include"
stdio.h"
stdlib.h"
string.h"
conio.h"
/*自定义栈的结构体*/
typedefstruct
char*base;
char*top;
intstacksize;
/*记录栈的实时长度*/
}SqStack;
/*自定义二叉树的结构体*/
typedefstructNode
chardata;
structNode*lchild;
structNode*rchild;
}BiTNode,*BiTree;
/*初始化栈*/
intInitStack(SqStack&
s)
s.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char));
if(!
s.base)exit(-1);
s.top=s.base;
s.stacksize=STACK_INIT_SIZE;
/*入栈操作*/
intpush(SqStack&
s,BiTreee)
if(s.top-s.base>
=s.stacksize)
s.base=(char*)realloc(s.base,(s.stacksize+STACKINCREMENT)*sizeof(char));
/*追加栈长*/
s.top=s.base+s.stacksize;
s.stacksize+=STACKINCREMENT;
*s.top=e->
data;
s.top++;
/*出栈操作*/
intpop(SqStack&
if(s.top==s.base)return0;
e->
data=*--s.top;
/*判断栈空*/
intStackEmpty(SqStacks)
if(s.top==s.base)return1;
else
BiTreegettop(SqStacks,BiTreee)
if(s.top==s.base)e->
data='
data=*(s.top-1);
returne;
//创建二叉树
BiTreecreatBiTree()
charch;
BiTrees;
ch=getchar();
if(ch=='
#'
returnNULL;
s=(BiTree)malloc(sizeof(BiTNode));
s->
data=ch;
lchild=creatBiTree();
rchild=creatBiTree();
returns;
//递归遍历二叉树
//先序
voidpreorder(BiTreeroot)
if(root!
=NULL)
root->
data);
preorder(root->
lchild);
rchild);
//中序
voidinorder(BiTreeroot)
inorder(root->
//后序
voidpostorder(BiTreeroot)
postorder(root->
//非递归遍历二叉树
voidpre_order(BiTreeroot)
SqStacks;
BiTreep;
p=root;
InitStack(s);
while(p||!
StackEmpty(s))
if(p)
p->
push(s,p);
p=p->
lchild;
pop(s,p);
rchild;
voidin_order(BiTreeroot)
voidpost_order(BiTreeroot)
BiTreep,q;
q=NULL;
gettop(s,p);
if(p==NULL||p==q)
q=p;
p=NULL;
按先序创建二叉树:
p=creatBiTree();
/*printf("
按先序输出二叉树:
preorder(p);
按中序输出二叉树:
inorder(p);
按后序输出二叉树:
postorder(p);
*/
pre_order(p);
getch();
28.制作一个随机点名器,由老师输入班级的最大学号,进行随机抽取学号回答问题,
中途可以选择结束抽取。
回答过问题的学员不再抽取,如果全班学员都回答过问题了,结束抽取,注意随机抽取的学号不能是负数。
stdlib.h>
time.h>
intnum;
charans;
inta[18];
charb[18][18]={"
马振磊"
"
王开泰"
韩雪诗"
樊新健"
孔凯瑜"
崔智勇"
黄传奇"
李成森"
李亚奇"
庙存发"
杨晓佳"
郑洁"
李燕"
陈仟"
张越"
王浩田"
姜涛"
李玉冰"
};
intrandNum;
inti=0;
请输入班级的最大人数:
num);
num;
a[i]=0;
do
srand(time(0));
//改变随机值
randNum=rand()%num;
if(a[randNum]==1)
continue;
if(a[randNum]==0)
请%s同学回答问题。
。
b[randNum]);
a[randNum]=1;
i++;
继续提问吗?
y/n:
fflush(stdin);
//清除缓存
ans=getchar();
}while(i<
num&
ans=='
y'
提问结束!
\n"
方法二:
voidmenu();
voidselect(char(*)[10],int*,char(*)[10]);
voidstyle1(char(*)[10]);
voidstyle2(char(*)[10],int*,char(*)[10]);
voidstyle3(char(*)[10],int*,char(*)[10]);
charname[19][10]={"
"
陈仟"
郑洁"
李卓轩"
苗存发"
李燕"
姜涛"
intteam[19]={0,1,1,1,2,2,3,3,4,4,4,5,5,5,6,6,6,7,7};
charteamList[8][10]={"