c语言程序设计的基础题目求教,请给解析(多追积分)

c语言程序设计的基础题目求教,请给解析(多追积分),第1张

1:已知a=13,b=6,a%b的十进制数值为()

a%b,整数%整数,表示求余数,因此13%6=1

2:设x的值为15,n的值为了2,则表达式x%=(n+3)运算后的x的值是()

x%=(n+3)相当于x=x%(n+3),x%=n+3也表示x=x%(n+3),类似的有+=,-=,=,/=

因此x=x%(n+3),x=15%5,x=0

3:int x=y=4,z=2;x=y==z;则x的值为()

x=y=4,等号是右结合的,也就是这种情况下要从右向左计算,因此相当于y=4;x=y;

而x=y==z,==的优先级比=高,因此相当于x=(y==z),y=4,z=2所以y==z不成立,所以y==z这个表达式的值是false,也就是0,所以x=0

4:若有定义:int a=10,b=9,c=8;接着顺序执行后下列语句是,变量b中的值是()

c=(a-=(b-5));

c=(a%11)+(b=3);

由上面的几题为基础,

c=(a-=(b-5))相当于c=(a=a-(b-5)),c=(a=10-(9-5)),c=(a=6),所以a=6,c=6,b=9(表达式b-5并没有改变b的值)

c=(a%11)+(b=3)相当于,c=6%11+3=6+3=9,所以a=6,c=9,b=3

5:int x=2,y=2,z=0;则表达式的x==y>z的值为()

x==y>z这个一个复合逻辑表达式,>优先级高于==,所以相当于x==(y>z),y>z成立,所以y>z==1,x==1不成立,所以表达式的值为0

6:若有以下定义和语句int a[4]={0,1,2,3},p;

p=&a[2];则--p的值是()

p=&a[2];表示p是a[2]的地址

--p相当于(--p),就是先将p减1,也就是a[1]的地址,然后用 *** 作符取出地址中的值,也就是1

67完数

main()

#include M 1000/定义寻找范围/

main()

{

int k0,k1,k2,k3,k4,k5,k6,k7,k8,k9;

int i,j,n,s;

for(j=2;j<=M;j++)

{

n=0;

s=j;

for(i=1;i<j;i++)

{

if((j%i)==0)

{

if((j%i)==0)

{

n++;

s=s-i;

switch(n)/将每个因子赋给k0,k1…k9/

{

case 1:

k0=i;

break;

case 2:

k1=i;

break;

case 3:

k2=i;

break;

case 4:

k3=i;

break;

case 5:

k4=i;

break;

case 6:

k5=i;

break;

case 7:

k6=i;

break;

case 8:

k7=i;

break;

case 9:

k8=i;

break;

case 10:

k9=i;

break;

}

}

}

if(s==0)

{

printf("%d是一个‘完数’,它的因子是",j);

if(n>1)

printf("%d,%d",k0,k1);

if(n>2)

printf(",%d",k2);

if(n>3)

printf(",%d",k3);

if(n>4)

printf(",%d",k4);

if(n>5)

printf(",%d",k5);

if(n>6)

printf(",%d",k6);

if(n>7)

printf(",%d",k7);

if(n>8)

printf(",%d",k8);

if(n>9)

printf(",%d",k9);

printf("\n");

}

}

方法二:此题用数组方法更为简单

main()

{

static int k[10];

int i,j,n,s;

for(j=2;j<=1000;j++)

{

n=-1;

s=j;

for(i=1;i<j;i++)

{

if((j%i)==0)

{

n++;

s=s-i;

k[n]=i;/将每个因子赋给k0,k1k9/

}

}

if(s==0)

{

printf("%d是一个完数,它的因子是:",j);

for(i=0;i<n;i++)

printf("%d,",k[i]);

printf("%d\n",k[n]);

}

}

58 有一个分数序列:2/1,3/2,5/3,8/5……求出这个数列的前20项之和

解: main()

{

int n,t,number=20;

float a=2,b=1,s=0;

for(n=1;n<=number;n++)

{

s=s+a/b;

t=a,a=a+b,b=t;

}

printf("总和=%96f\n",s);

}

69球反d问题

main()

{

float sn=1000,hn=sn/2;

int n;

for(n=2;n<=10;n++)

{

sn=sn+2hn;/第n次落地时共经过的米数/

hn=hn/2;/第n次反跳高度/

}

printf("第10次落地时共经过%f米 \n",sn);

printf("第10次反d%f米\n",hn);

}

610猴子吃桃

main()

{

int day,x1,x2;

day=9;

x2=1;

while(day>0)

{

x1=(x2+1)2;

x2=x1;

day--;

}

printf("桃子总数=%d\n",x1);

}

614打印图案

main()

{

int i,j,k;

for(i=0;i<=3;i++)

{

for(j=0;j<=2-1;j++)

printf(" ");

for(k=0;k<=2i;k++)

printf("");

printf("\n");

}

for(i=0;i<=2;i++)

{

for(j=0;j<=i;j++)

printf(" ");

for(k=0;k<=4-2i;k++)

printf("");

printf("\n");

}

615乒乓比赛

main()

{

char i,j,k;/i是a是对手;j是b是对手;k是c的对手/

for(i='x';i<='z';i++)

for(j='x';j<='z';j++)

{

if(i!=j)

for(k='x';k<='z';k++)

{

if(i!=k&&j!=k)

{if(i!='x' && k!='x' && k! ='z')

printf("顺序为:\na-%c\tb--%c\tc--%c\n",i,j,k);

}

}

}

}

71用筛选法求100之内的素数

/用筛选法求100之内的素数/

#include<mathh>

#define N 101

main()

{int i,j,line,a[N];

for(i=2;i<N;i++) a[i]=i;

for(i=2;i<sqrl(N);i++)

for(j=i+1;j<N;j++)

{if(a[i]!=0 && a[j]!=0)

if(a[j]%a[i]==0)

a[j]=0;

printf("\n");

for(i=2,line=0;i<N;i++)

{ if(a[i]!=0)

{printf("%5d",a[i]);

line++;

if(line==10)

{printf("\n");

line=0;}

}

}

72用选择法对10个数排序

/选择法排序/

#define N 10

main()

{ int i,j,min,temp,a[N];

/输入数据/

printf("请输入十个数:\n");

for (i=0;i<N;i++)

{ printf("a[%d]=",i);

scanf("%d",&a[i]);

}

printf("\n");

for(i=0;i<N;i++)

printf("%5d",a[i]);

printf("\n");

/排序/

for (i=0;i<N-1;i++)

{ min=i;

for(j=i+1;j<N;j++)

if(a[min]>a[j]) min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

/输出/

printf("\n排序结果如下:\n");

for(i=0;i<N;i++)

printf("%5d",a[i]);

}

73对角线和:

/计算矩阵对角线元素之和/

main()

{

float a[3][3],sum=0;

int i,j;

printf("请输入矩阵元素:\n");

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%f",&a[i][j]);

for(i=0;i<3;i++)

sum=sum+a[i][i];

printf("对角元素之和=62f",sum);

}

74插入数据到数组

/插入数据到数组/

main()

{int a[11]={1,4,6,9,13,16,19,28,40,100};

int temp1,temp2,number,end,i,j;

printf("初始数组如下:");

for (i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

printf("输入插入数据:");

scanf("%d",&number);

end=a[9];

if(number>end)

a[10]=number;

else

{for(i=0;i<10;i++)

{ if(a[i]>number)

{temp1=a[i];

a[i]=number;

for(j=i+1;j<11;j++)

{temp2=a[j];

a[j]=temp1;

temp1=temp2;

}

break;

}

}

}

for(i=0;j<11;i++)

printf("a%6d",a[i]);

}

75将一个数组逆序存放。

/数组逆序存放/

#define N 5

main()

{ int a[N]={8,6,5,4,1},i,temp;

printf("\n 初始数组:\n");

for(i=0;i<N;i++)

printf("%4d",a[i]);

for(i=0;i<N/2;i++)

{ temp=a[i];

a[i]=a[N-i-1];

a[N-i-1]=temp;

}

printf("\n 交换后的数组:\n");

for(i=0;i<N;i++)

printf("%4d",a[i]);

}

76杨辉三角

/打印杨辉三角形/

#define N 11

main()

{ int i,j,a[N][N];

for(i=1;i<N;i++)

{a[i][i]=1;

a[i][1]=1;

}

for(i=3;i<N;i++)

for(j=2;j<=i-1;j++)

a[i][j]=a[i01][j-1]+a[i-1][j];

for(i=1;i<N;i++)

{ for(j=1;j<=i;j++)

printf("%6d",a[i][j];

printf("\n");

}

printf("\n");

}

78鞍点

/查找鞍点/

#define N 10

#define M 10

main()

{ int i,j,k,m,n,flag1,flag2,a[N][M],max,maxi,maxj;

printf("\n输入行数n:");

scanf("%d",&n);

printf("\n输入列数m:");

scanf("%d",&m);

for(i=0;i<n;i++)

{ printf("第%d行\n",i);

for(j=0;j<m,j++);

scanf("%d",&a[i][j];

}

for(i=0;i<n;i++)

{ for(j=0;j<m;j++)

printf("%5d",a[i][j]);

pritf("\n");

}

flag2=0;

for(i=0;i<n;i++)

{ max=a[i][0];

for(j=0;j<m;j++)

if(a[i][j]>max)

{ max=a[i][j];

maxj=j;

}

for (k=0,flag1=1;k<n && flag1;k++)

if(max>a[k][max])

flag1=0;

if(flag1)

{ printf("\n第%d行,第%d列的%d是鞍点\n",i,maxj,max);

flag2=1;

}

}

if(!flag2)

printf("\n 矩阵中无鞍点! \n");

}

79变量说明:top,bott:查找区间两端点的下标;loca:查找成功与否的开关变量

/折半查找/

#include<stdioh>

#define N 15

main()

{ int i,j,number,top,bott,min,loca,a[N],flag;

char c;

printf("输入15个数(a[i]>[i-1])\n);

scanf("%d",&a[0]);

i=1;

while(i<N)

{ scanf("%d",&a[i]);

if(a[i]>=a[i-1])

i++;

esle

{printf("请重输入a[i]");

printf("必须大于%d\n",a[i-1]);

}

}

printf("\n");

for(i=0;i<N;i++)

printf("%4d",a[i]);

printf("\n");

flag=1;

while(flag)

{

printf("请输入查找数据:");

scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((number<a[0])||(number>a[N-1]))

loca=-1;

while((loca==0)&&(top<=bott))

{ min=(bott+top)/2;

if(number==a[min])

{ loca=min;

printf("%d位于表中第%d个数\n",number,loca+1);

}

else if(number<a[min])

bott=min-1;

else

top=min+1;

}

if(loca==0||loca==-1)

printf("%d不在表中\n",number);

printf("是否继续查找Y/N!\n");

c=getchar();

if(c=='N'||c=='n')

flag=0;

}

}

710/统计字符数/

main()

{ int i,j,uppn,lown,dign,span,othn;

char text[3][80];

uppn=lown=dign=span=othn=0;

for(i=0;i<3;i++)

{ printf("\n请输入第%d行:\n",i);

gets(text[i]);

for(j=0;j<80 && text[i][j]!='\0';j++)

{if(text[i][j]>='A' && text[i][j]<='Z')

uppn+=1;

else if(text[i][j]>='a' && text[i][j]<='z')

lown+=1;

else if(text[i][j]>='1' && text[i][j]<='9')

dign+=1;

else if(text[i][j]=' ')

span+=1;

else

othn+=1;

}

}

for(i=0;i<3;i++)

printf("%s=n",text[i]);

printf("大写字母数:%d\n",uppn);

printf("小写字母数:%d\n",lown);

printf("数字个数:%d\n",dign);

printf("空格个数:%d\n",span);

printf("其它字符:%d\n",othn);

}

711/打印图案/

main()

{static char a[5]={'','','','',''};

int i,j,k;

char space=' ';

for(i=0;i<=5;i++)

{printf("\n");

for(j=1;j<=3i;j++)

printf("%lc",space);

for(k=0;k<=5;k++)

printf("%3c",a[k];

}

}

712/译电文/

#include<stdioh>

main()

{int i,n;

char ch[80],tran[80];

printf("请输入字符:");

gets(ch);

printf("\n密码是%c",ch);

i=0;

while(ch[i]!='\0')

{if((ch[i]>='A')&&(ch[i]<='Z'))

tran[i]=26+64-ch[i]+1+64;

else if((ch[i]>='a')&&(ch[i]<='z'))

tran[i]=26+96-ch[i]+1+96;

else

tran[i]=ch[i];

i++;

}

n=i;

printf("\n原文是:");

for(i=0;i<n;i++)

putchar(tran[i]);

}

713/连接两个字符串(不用'stract')/

main()

{

char s1[80],s2[40];

int i=0,j=0;

printf("\n请输入字符串1:");

scanf("%s",s1);

printf("\n请输入字符串2:");

scanf("%s",s2);

while(s1[i]!='\0')

i++;

while(s2[j]!='\0')

s1[i++]=s2[j++];

s1[i]='\0';

printf("\n连接后字符串为:%s",s1);

}

714/字符串比较/

#include<stdioh>

main()

{int i,resu;

char s1[100],s2[100];

printf("请输入字符串1:\n");

gets(s1);

printf("\n 请输入字符串2:\n");

gets(s2);

i=0;

while((s1[i]==s2[i]) && (s1[i]!='\0'))i++;

if(s1[i]=='\0' && s2[i]=='\0')resu=0;

else

resu=s1[i]-s2[i];

printf(" %s与%s比较结果是%d",s1,s2,resu);

}

715/字符串复制/

#include<stdioh>

main()

{

char from[80],to[80];

int i;

printf("请输入字符串");

scanf("%s",from);

for(i=0;i<=strlen(from);i++)

to[i]=from[i];

printf("复制字符串为:%s\n",to);

}

第八章 函数

81(最小公倍数=uv/最大公约数)

hcf(u,v)

int u,v;

(int a,b,t,r;

if(u>v)

{t=u;u=v;v=t;}

a=u;b=v;

while((r=b%a)!=0)

{b=a;a=r;}

return(a);

}

lcd(u,v,h)

int u,v,h;

{int u,v,h,l;

scanf("%d,%d",&u,&v);

h=hcf(u,v);

printf("HCF=%d\n",h);

l=lcd(u,v,h);

printf("LCd=%d\n",l);

}

{return(uv/h);}

main()

{int u,v,h,l;

scanf("%d,%d",&u,&v);

h=hcf(u,v);

printf("HCF=%d\n",h);

l=lcd(u,v,h);

printf("LCD=%d\n",l);

}

82求方程根

#include<mathh>

float x1,x2,disc,p,q;

greater_than_zero(a,b)

float a,b;

{

x1=(-b+sqrt(disc))/(2a);

x2=(-b-sqrt(disc))/(2a);

}

equal_to_zero(a,b)

float a,b;

{x1=x2=(-b)/(2a);}

smaller_than_zero(a,b)

float a,b;

{p=-b/(2a);

1 英文字母 下划线

2 双引号 ("")

3全局变量

4指针

5一

6十六

7小于

8最长的成员的内存长度

9随机值

10字母 下划线 数字

11 单引号 ('')

12局部变量

13指针变量

14八

15第2高级 左结合

16最长的成员的内存长度

17 15

180X

19 0

20 最长的成员的内存长度

21 0

22 if(m <= '9' && m >= '0'){}

23函数 (不确定)

24字母 下划线

25 1

1代表正确 0代表错误

11

21

30

41

51

61

71

80

91

101

110

120

131

141

150

161

170

180

191

201

以上就是关于c语言程序设计的基础题目求教,请给解析(多追积分)全部的内容,包括:c语言程序设计的基础题目求教,请给解析(多追积分)、谭浩强 C程序设计第三版 课后习题答案、求解C程序设计题目答案2等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9286474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存