c语言循环输出三角形。。。通过for循环得到的一组数字,怎么挑选出能被11整除的数,并输出其中最大的一个,求教……

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
2015年成都信息工程学院C语言系统全部答案
下载积分:600
内容提示:2015年成都信息工程学院C语言系统全部答案
文档格式:DOC|
浏览次数:114|
上传日期: 15:54:35|
文档星级:
该用户还上传了这些文档
2015年成都信息工程学院C语言系统全部答案
官方公共微信c语言 入门级 编程题 示例锦集(大一c语言考试题库)_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:508,696贴子:
c语言 入门级 编程题 示例锦集(大一c语言考试题库)收藏
1)输入1个整数,输出它的绝对值。#include&stdio.h&void main(){ scanf("%d",&a); if(a&=0)
printf("%d\n",a); else
printf("%d\n",-a);} 2)输入2个整数,求两数的平方和并输出。#include &stdio.h&void main()
scanf("%d%d", &a, &b);
printf("%d", a * a + b * b);
} 3)输入1个整数,判断该数是奇数还是偶数。#include&stdio.h&main(void){
printf("please input your number:");
scanf("%d",&a);
if(a%2==0)
printf("%d is ou\n",a);
printf("%d is ji\n",a);
return 0;}
4)输入正整数n,输出1+1/3+1/5+1/7+…前n项的和.(输入的n&=10)#include&stdio.h&void main(){
float sum=0;
for(n=1;n&=10;n++){ sum=sum+1.0/(2*n-1); }printf("%f",sum);} 5)输入一个正整数n, 计算 1 - 1/3 + 1/5 - 1/7 + … 的前 n(n&10) 项之和。#include &stdio.h&void main(){int n,i=1,m;float a=0;printf("输入一个正整数N:");scanf("%d",&n);for(m=1;m!=(n+1);m++){ a+=i*1.0/(2*m-1);
i=-i; }printf("结果为:%f",a);} 6)输入一个整数,判断该数是奇数还是偶数。要求必须使用if-else结构实现。#include &stdio.h&void main(){printf("please enter a number:");scanf("%d",&a);if(a%2==0)printf("该数为偶数");elseprintf("该数为奇数");} 7)输入一批学生的成绩,找出最高分。#include &stdio.h&#define
//通过改变宏定义,改变数组元素的个数void main(){ int a[N]; max=a[0]; printf("请输入一组学生成绩(假设有5位学生成绩,且学生成绩都是整数型)\n"); for(i=0;i&N;i++) {
scanf("%d",&a[i]);
// printf("%f\n",a[i]); } for(i=0;i&N;i++) {
if(max&a[i])
max=a[i];}printf("学生成绩最高分为:%d\n",max);} 8)输入三个整数,分别存在变量x,y,z中。编程输出最大数。#include &stdio.h&void main(){int x,y,z;
scanf("%d%d%d",&x,&y,&z);if(x&y){if(x&z)printf("最大数是%d\n",x);else printf("最大数是%d\n",z);
}else if(y&z)printf("最大数是%d\n",y);else printf("最大数是%d\n",z);} 9)输入一个字母,判断是大写字母还是小写字母,并输出信息。#include &stdio.h&void main(){
scanf("%c",&c);if(c&=97&&c&=122)printf("这是一个小写字母\n");
else if(c&=65&&c&=90)printf("这是一个大写字母\n");} 10)输入你和你朋友的年龄,编程判断谁的年龄较大,并打印较大者的年龄。 #include&stdio.h&void main(){int age1,age2;printf("输入你的年龄:");scanf("%d",&age1);printf("输入你朋友的年龄:");scanf("%d",&age2);if (age1&age2)printf("你年龄比较大\n%d",age1);else printf("你的朋友年龄较大\n%d\n",age2);}11)输入一个数,求出该数绝对值所对应的开方 。#include&stdio.h&#include&math.h&int main (void){ int a,b; scanf("%d",&a); if(a&=0) {
b=a; c=sqrt(b); printf("%d的绝对值的开方是%lf",a,c); } else {
b=-a; c=sqrt(b); printf("%d的绝对值的开方是%lf",a,c); }
return 0;} 12)输入一个字母,如果接收的是‘n’或者‘N’,
则输出“no”。否则输出“wrong”。从键盘读入一个整数,
统计该数的位数。例如,输入12534,输出5;输入-99,输出2;输入0,输出1。13)输入一个字符,如果是字母,输出其对应的ASCII码
,如果是数字,按原样输入,否则给出提示信息“输入错误!”。14)输入一个年份year,判断改年是否是闰年。
判断闰年的条件是:能被4整除但不能被100整除,或能被400整除。#include&stdio.h&void main(){ scanf("%d",&year); if(year%4==0&&year%100!=0||year%400==0) {
printf("润年"); } else {
printf("非润年"); }} 15)输入一个正整数,将其逆序输出。例如,输入12345,输出54321。#include&stdio.h&void main(){ long n,m; printf("输入一个正整数"); scanf("%d",&n);
while(n!=0) {
printf("%d",m); }} 16)输入20个字符,统计其中英文字母、数字字符和其他字符的个数。17)输入三角形三边,输出其面积和周长#include&stdio.h&#include&math.h&int main(void){
double a,b,c;
double area,perimeter,s; printf("Enter 3 sides of the triangle:"); scanf("%lf%lf%lf",&a,&b,&c); if(a+b&c||b+c&a||a+c&b){
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area=%.2f;perimeter=%.2f/n",area,perimeter); }
printf("These sides do not correspond to a valid triangle\n");
return 0;} 18)输入大写字母,输出其小写字母#include&stdio.h&void main(){
printf("输入大写字母:\n"); c=getchar(); putchar(c+32);} 19)输入两实数(浮点数),由大到小输出(先强转,比较大小,后输出)20)输入一系列字符,统计其中英文字母,数字,空格的个数21)输入若干个非零整数,以0为终止符,输出这批数中的最大值。22)统计在[]之间有多少个数能同时被29和43整除,而不能被53整除。23)计算n的阶层:n!#include&stdio.h&void main(){ long n,i,s=1; //s为所求和 printf("Enter n:"); scanf("%d",&n);
//输入N的值 if(n&=0) {for(i=1;i&=n;i++)
s=s*i; printf("%d\n",s);} else
printf("error\n");}
24)计算 s=1-2!+3!-4!+…-n!的值并输出,其中n不大于10。要求必须使用for语句实现。#include &stdio.h&void main(){ int n,sigh=1,k=1; float m=1,sum=0; for(n=1;n&=3;n++) {
m=m*n; //用来计算N的阶乘
sum=sum+k*m;
k=-k; } printf("%f\n",sum);} 25)计算 公式 a-|b|,其中a,b为两个整数。#include &stdio.h&void main(){ int a,b, printf("输入正数a:"); scanf("%d",&a); printf("输入b:"); scanf("%d",&b); if(b&=0) {
printf("%d-|%d|=%d\n",a,b,sum); } else {
printf("%d-|-%d|=%d\n",a,b,sum); }} 26)计算 s=a+aa+aaa+aaaa+aa...a的值,
其中a是一个数字。例如2+22+222+(此时 共有5个数相加),
几个数相加有键盘控制。#include &stdio.h&void main(){ int j,k,i,sum=0,n=1,m,a=0; printf("输入累加到几位数:"); scanf("%d",&j); printf("输入累加数字:"); scanf("%d",&k); for(i=1;i&=j;i++) {
sum=sum+k*n;
for(m=1;m&=1;m++)
} } printf("该数为%d\n",a);} 27)编写程序,求S=1/(1*2)+1/(2*3)+1/(3*4)+……前50项之和。要求必须使用for语句实现。#include &stdio.h&void main(){ int n,sigh=1; float m,sum=0, for(n=1;n&=50;n++) {
m=n*(n+1); //用来计算N的阶乘
term=sigh/m; //用来计算1/N的值
} printf("%.10f\n",sum);} 28)编程求1+(1+2)+…+(1+2+…+n),n的值由键盘输入。要求使用for语句实现 #include &stdio.h&void main(){ int j,k,i,sum=0,n=1,m,a=0; printf("输入累加到几:"); scanf("%d",&j); for(i=1;i&=j;i++) {
sum=sum+n;
for(m=1;m&=1;m++)
} } printf("该数为%d\n",a);}29)题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,
其各位数字立方和等于该数 本身。例如:153是一个“水仙花数”,
因为153=1的三次方+5的三次方+3的三次方。#include &stdio.h& //100到999内的水仙花数void main(){ int i,b,s,g; for(i=100;i&=999;i++) {
s=(i/10)%10; //十位
if(b*b*b+s*s*s+g*g*g==i)
printf("%d\n",i); }} 30)猜数游戏。由计算机"想"一个数请人猜,如果人猜对了,
则结束游戏,否则计算机给出提示,告诉人所猜的数是太大还是太小,
直到人猜对为止。计算机记录人猜的次数,以此可以反映出猜数者"猜"的水平。 #include &stdio.h&#include&stdlib.h&void main(){ int a,b,i,k; a=rand()%89+10;
//取10到100的随机数 for(i=0;i!=k;) { printf("输入被猜的数字");
scanf("%d",&b);
printf("恭喜你猜对了,成功通关\n");
printf("对不起,你猜大了\n");
printf("对不起,你猜小了\n");
} } printf("总共猜了%d次\n",i);} 31)打印100-999以内所有满足条件的数。条件为:这个数等于其个位数,
十位数,百位数立方和,如153=1*1*1+5*5*5+3*3*3#include &stdio.h& //100到999内的水仙花数void main(){ int i,b,s,g; for(i=100;i&=999;i++) {
s=(i/10)%10; //十位
if(b*b*b+s*s*s+g*g*g==i)
printf("%d\n",i); }} 32)查询自动售货机中商品的价格。假设自动化售货机出售4种商品:
薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),
售价分别是每份3.0、2.5、4.0和3.5元。在屏幕上显示以下菜单(编号和选项),
用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;不到5次时,
用户可以选择退出。当用户输入编号1~4,显示相应商品的价格(保留1位小数);
输入0,退出查询;输入其他编号,显示价格为0。
[1]Select crisps[2]Select popcorn[3]Select chocolate[4]Select cola[0]Exit#include &stdio.h&
void main(){ int g,i; float a=3,b=2.5,c=4,d=3.5; printf("[1]选择薯片\n"); printf("[2]选择爆米花\n"); printf("[3]选择巧克力\n"); printf("[4]选择可乐\n"); printf("[0]退出查询\n"); for(i=1;i&=5;i++) {
printf("请输入查询的物品数字:");
scanf("%d",&g);
case 1:printf("薯片的价格为%.1f\n",a);
case 2:printf("爆米花价格为%.1f\n",b);
case 3:printf("巧克力价格为%.1f\n",c);
case 4:printf("可乐价格位%.1f\n",d);
case 0:i=6;
} }} 33)猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,
还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,
又多吃了一个。以后每天早上都吃了前一天剩下的桃子的一半多一个。
到第10天早上想再吃,见只剩下一个桃子了。求第一天共摘了多少桃子。#include &stdio.h&
void main(){ int i,k=1,n=0,sum=1; for(i=10;i&=1;i--) {
sum=sum+k;
sum=sum*2; } printf("第一天摘桃子数为%d\n",sum);} 34)输入一个圆半径(r)当r&=0时,计算并输出圆的面积和周长,否则,输出提示信息。#include &stdio.h&#define PI 3.14void main(){ float r,s,l; printf("输入圆的半径:"); scanf("%f",&r); l=2*PI*r; s=PI*r*r; printf("输出圆的周长=%f\n面积=%f\n",l,s);} 35)利用条件运算符的嵌套来完成此题:学习成绩&=90分的同学用A表示,
60-89分之间的用B表示, 60分以下的用C表示。#include&stdio.h&void main(){ printf("Inter grade:"); scanf("%d",&grade); if(grade&=90&&grade&100)
printf("Grade is:A\n"); else if(grade&=60&&grade&=89)
printf("Grade is:B\n");
else if(grade&60&&grade&=0)
printf("Grade is:C\n");
else printf("error\n");} 36)求解爱因斯坦数学题。有一条长阶梯,若每步跨2阶,则最后剩余1阶,
若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,
若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。
请问,这条阶梯共有多少阶?#include&stdio.h&void main(){ int x=1;//x为阶长 while(x) {
if(x%2!=1) {x++;}
if(x%3!=2) {x++;}
if(x%5!=4) {x++;}
if(x%7) {x++;}
printf("%d\n",x);
printf("press \"Enter\" to continue\n");
getchar();
x++; }} 37)输出9*9乘法口诀。#include&stdio.h&void main(){ int a,b,c; for(a=1;a&=9;a++) { for(b=1;b&=9;b++)
printf("%d*%d=%2d\t",b,a,c);
}putchar('\n'); }}38)用for循环输出菱形图案#include&stdio.h&void main(){ int i,j,k; for(i=1;i&5;i++) {
for(j=4;j-i&0;j--)
printf(" ");
for(k=1;2*i-k&0;k++)
printf("*");
printf("\n"); } for(i=3;i&0;i--) { for(j=4;j-i&0;j--)
printf(" "); for(k=0;2*i-1&k;k++)
printf("*"); printf("\n"); }}
39)有一函数当x&0时y=1,当x&0时,y=3,当x=0时y=5,编程,
从键盘输入一个x值,输出y值#include&stdio.h&void main(){ int x,y; printf("Enter x:"); scanf("%d",&x); if(x&0) y=1; else if(x&0) y=3; else y=5; printf("y=%d\n",y);} 40)一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? #include&stdio.h&void main(){ double h,x, h=100.0; sum=0.0; for(n=0;n&10;n++) {
sum=sum+h+x;
h=h/2.0; } printf("小球下落100米\n十次后小球共经过%lf米
第十次上弹%lf米\n",sum,x);} 41)输出菲波那契(Fibonacci)序列:1,1,2,3,5,8,…的前20项,每行输出5项。 #include&stdio.h&void main(){ int a=0,b=1,c,i,j; for(i=1;i&=4;i++) {
for(j=1;j&=5;j++)
printf("%d\t",c);
}putchar('\n'); }} 42)100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,
小马两匹驮1担。试编写程序计算大、中、小马的数目。#include&stdio.h&void main(){ int a,b,c,sum=100;//大 中 小 for(a=0;a&=100;a++)
for(b=0;b&=100;b++)
for(c=0;c&=100;c++)
if(a+b+c==100&&(a*3+b*2+c)==sum)
printf("大马:%d
小马:%d\n",a,b,c);
}} 43)函数y=f(x)可表示为:y=2x+1 (x&0) ;y= 0 (x=0) ;y=2x-1
编程实现输入一个x值,输出y值。#include&stdio.h&void main(){ int x,y; printf("Enter x:"); scanf("%d",&x); if(x&0) y=2*x+1; else if(x&0) y=2*x-1; else y=0; printf("y=%d\n",y);} 44)若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,
每次从中任取8个球,编写程序求出共有多少种不同的颜色搭配。#include&stdio.h&void main(){ int a,b,c, for(a=0;a&=3;a++)
for(b=1;b&=5;b++)
for(c=0;c&=6;c++)
if(a+b+c==8)
printf("%d
%d\n",a,b,c);
}} 45) 从键盘输入一个学生的分数, 要求实现这样的判断功能:
如果分数大于100,输出”Input error!” 如果分数介于100到90之间,
输出”Very Good!” 如果分数介于80到90只,输出”Good!”
如果分数介于70到80之间,输出”Middle”
如果分数介于60到70之间, 输出”Pass”
如果分数小于60,输出”No Pass!” 。要求必须使用if-else-if结构实现。#include&stdio.h&void main(){ printf("Inter grade:"); scanf("%d",&grade); if(grade&=90&&grade&100)
printf("Very Good!\n"); else if(grade&=80&&grade&=89)
printf("Good!\n");
else if(grade&=70&&grade&=79)
printf("Middle!\n");
else if(grade&=60&&grade&=79)
printf("Pass!\n");
else if(grade&60&&grade&=0)
printf("No Pass\n");
else printf("Input error!\n");}46) 输入两正整数 a n ,求a+aa+aaa+aa...a(n个a)之和。#include"stdio.h" int main(void) {
int a,b,n,i,s=0;
printf("Input a,n:");
scanf("%d %d",&a,&n);
for(i=1;i&=n;i++)
printf("s=%d\n",s);
return 0; }47) 输入一个正整数n,再输入n个整数,输出最小值#include &stdio.h&
int main(){ int i,n,min=999999,x;
//min赋值为极大值 printf("input:"); scanf("%d",&n); printf("input numbers:"); for(i&0;i&n;i++) {
scanf("%d",&x);
if(x&min) min=x; } printf("min=%d\n",min);
return 0;}48)输入五级制成绩#include&stdio.h&int main(void){
printf("Input Grade:");
char grade,A,B,C,D;
grade=getchar();
switch(grade)
case'A':printf("85~100\n");
case'B':printf("70~84\n");
case'C':printf("60~69\n");
case'D':printf("&60");
default:printf("输的神马呀,你丫逗我呢!");
return 0;}49)判断素数//判断m是不是素数的方法:让m被i(i由2变到k=sqrt(m))除//如果m能被某一个i(2到k之间的整数)整除则m必然不是素数#include&stdio.h&#include&math.h&void main(){ int m,i,k; printf("please enter an integer number:"); scanf("%d",&m); k=sqrt(m); for(i=2;i&=k;i++)
if(m%i==0)
printf("%d is a prime number.\n",m);
else printf("%d is not a prime number.\n",m);}50)读入一批正整数(以零或负数为结束标志),求其中奇数的和#include&stdio.h&void main(){ int m=1,n=0;//要求输入m,用n存储 printf("Input integers:"); while(m&0)
scanf("%d",&m);
if(m%2) n=n+m;
} printf("The sum of the odd number is %d\n",n);}有任何疑问或建议,请跟帖留言。
好的话剧,坚决不能错过,价格也很重要!
就这些吗?还有吗?
问下第7题,使用宏定义的那个,你假设了5个。怎么随意数量的输入学生成绩呢?初学还没学到动态定义数组
#输入三个整数,要求按照从小到大的顺序输出)怎么编程序呢?
C语言软件APK
耶[VICTORY HAND]️
c语言,亚马逊网上书店,精品图书,一网打尽!书到付款,送货上门!
挖得一手好坟
楼主辛苦了
请帮忙写一个求圆周率的c语言,
太感谢你了
全收入C4D中
4和7不行啊
太长了,不能分开发么,我都没心情看下去了
新人码,虽然现在一个都没看懂,等到下次来,一定要看懂
新手入门。看不懂
按照红、黄、绿三种颜色的顺序依次插旗,编写一程序实现插第52面旗时旗帜应是什么颜色
二叉树的怎么办?
大神这个怎么做啊
这坟挖的好,可惜伸手党不会看
大一考试一般考这些对吗
LZ求助,急求
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或中出现了%d次\n”,c,s,n);}5519.;B.printf(&x/y=%d\n&;D.printf(&x/y=%d\n&;A.string.hB.stdlib.hC.ct;C.#definemuit(u,v)(u)*(v;C(5)D解:D.string.h56二、填空题;((a)&(b)?(a):(b))”;(fabs(a)
中出现了%d 次\n”,c,s,n); } 55 19.在主函数中输入一个字符串,再输入一个字符,编写函数 delete(),将字符串中该字符 删除。 解:#include &stdio.h& #include &string.h& void delete (char s[],char ch) { for(i=0;s[i]!=?\0?;) // 查看字符串中的每一个字符 if(s[i]==ch) // 若是要删除的字符 strcpy(s+i,s+i+1); // 删除字符 else i++; // 查看下一个字符 } void main() { char s[100],c; printf(“请输入字符串:\n”); gets(s); printf(“请输入字符:\n”); c=getchar(); delete(s,c); // 调用函数 puts(s); } 习 题7 一、单项选择题 1.下列宏定义命令中,哪一个格式是正确的( ) 。 A.#define pi=3.14159; C.#define pi=&3.14159& 2.宏定义为“#define div(x,y) 3)); ”作宏替换后为( ) 。 A.printf(&x/y=%d\n&,(x+3)/(y-3));
B.printf(&x/y=%d\n&,x+3/y-3); C.printf(&div(x,y)=%d\n&,x+3/y-3;);
D.printf(&x/y=%d\n&,x+3/y-3;); 3.程序中调用了库函数 exit,必须包含头文件( ) 。
A.string.h B.stdlib.h C.ctype.h D.math.h 4.定义带参数的宏计算两个表达式的乘积,下列定义中哪个是正确的( ) 。 A.#define muit(u,v) u*v B.#define muit(u,v) u*v; B.define pi=3.14159 D.#define pi(3.14159) x/y;,若语句“printf(&div(x,y)=%d\n&,div(x+3,y- ”
C.#define muit(u,v) (u)*(v) D.#define muit(u,v)=(u)*(v) 5.程序中调用了库函数 strcmp,必须包含头文件( ) 。 A.stdlib.h B.math.h C.ctype.h (1)D (2) C (3)B (4)
C (5)D 解: D.string.h 56 二、填空题 1.定义一个宏,用于判断所给出的年份 year 是否为闰年: #define LEAP_YEAR(y) 。 (y%4==0 && y%100!=0) || (y%400==0 ) 解: 说明: (1)能被 4 整除,但不能被 100 整除。 (2)能被 4 说明:闰年的条件是符合下面二者之一: 整除,能被 400 整除。 2.定义带参数的宏为“#define max(a,b)
((a)&(b)?(a):(b))” 。对表达式“max(a,max(b, max(c,d)))”作宏替换为(用文字描述) : 。 b、 d 表达式是调用宏函数, 两个参数分别是 a,max(b,max(c,d)), 解: 计算 a、 c、 中的最大值。 其第二个参数又是一个调用宏函数,参数分别是 b,max(c,d)。 3.定义带参数的宏,计算两个数中绝对值最小的数 。 解: #define min(a,b) fabs(a)&fabs(b)?a:b 4.定义一个带参数的宏,若变量中的字符为大写字母,则转换成小写字母。 解: #define change(c) c=c&='A'&&c&='Z'? c:c+32 三、写出下列程序的输出结果 #define PT 5.5 #define S(x) PT*x*x #include &stdio.h& int main(void) { int a = 1, b = 2; printf(“%4.1f\n”, S(a+b)); } 解:9.5 四、编程题 1.输入 5 个数后,输出其中绝对值最小的数。要求定义带参数的宏,计算两个数中绝对值 最小的数。 解:#include&stdio.h& #include &math.h& #define min(a,b)
(fabs(a)&fabs(b)?(a):(b)) void main() { float x,m; scanf(&%f&,&m); for(i=2;i&=5;i++)
{ scanf(&%f&,&x); m=min(m,x); } printf(&绝对值最小数:%f\n&,m); } *2.用梯形公式求函数 f(x)=x2CsinC1x,在[0,1]区间的定积分,要求用带参数的宏定义函数 f(x)的计算公式。 解:#include &stdio.h& #include &math.h& #define f(x) (x)*(x)-asin(x) 57 void main() { double
x=0,y=0; for(int i=1;i&=10;i++) { y=y+(f(x)+f(x+0.1))/20; x=x+0.1;} printf(&%f\n&,y); } 习 题8
一、单项选择题 1.下列语句定义 p 为指向 float 型变量 d 的指针,其中正确的是( ) 。
A.float d,*p=d; B.float *p=&d,d; C.float d,*p=&d; D.float d,p=d; *2.指针变量 p1、p2 类型相同,要使 p2、p1 指向同一变量,哪一个语句是正确的( ) 。
A.p2=*&p1; B.p2=**p1; C.p2=&p1; D.p2=*p1; 3.若有“float a=1.5,b=3.5,*pa=&a;*pa*=3;pa=&b;,则正确的是( ) ” 。 A.pa 的值是 1.5 B.*pa 的值是 4.5 C.*pa 的值是 3.5 D.pa 的值是 3.5 4.数组定义为“int a[4][5];,下列哪一个引用是错误的( ) ” 。
A.*a B.*(*(a+2)+3) C.&a[2][3] D.++a 5.表达式“c=*p++”的执行过程是( ) 。 A.复制*p 的值给 c 后再执行 p++ B.复制*p 的值给 c 后再执行(*p)++ C.复制 p 的值给 c 后再执行 p++ D.执行 p++后将*p 的值复制给 c *6.声明语句为“char s[4][15],*p1,**p2;int x,*y;,下列语句中正确的是( ) ” 。 A.p2=s; B.y=*s; C.*p2=s; D.y=&x; *7.定义函数 int *max()的正确含义是( ) 。 A.返回整型值的函数 B.返回指向整型变量的指针 C.返回指向函数 max()的指针 D.上面的叙述都不正确。 *8.若有定义“int(*ptr)(float);,其正确的含义是( ) ” 。 A.ptr 是指向一维数组的指针变量 B.ptr 是指向 int 型数据的指针变量 C.ptr 是指向函数的指针变量,该函数有一个 float 型参数,返回值是整型 D.ptr 是一个函数名,该函数的返回值是指向 int 型数据的指针 9.指出正确的程序是( ) 。程序 (1) #include &stdio.h& void main() { char *p; char s[80]; p=s[0];
scanf(&%s&,s); printf(&%s\n&,p); } 程序 (3) #include &stdio.h& 程序 (2) #include &stdio.h& void main() { double x,y, *p; x=3.45; p=&x; y=*p; printf(&%f\n&,y); } 程序 (4) #include &stdio.h& 58 void main() { int x,*p; *p=x; printf(&%d\n&,*p); } void main() { int *p=&a;
printf(&%d\n&,*p); } *10.下面程序的输出结果是( ) 。 void main() { int
a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for(i=0;i&4;i++) p[i]=a+i*3; // 或 p[i]=&a[i*3];
printf(&%d&, *(p[3]+2)); // 或 printf(&%d&, p[3][2]); } A.8 B.12 C.6 D.程序有错 解:(1)C
(2)A (3)C (4)D (5)A (6)D (7)B (8)C (9)程序(2) (10)B 二、写出下列程序的输出结果
1. #include&stdio.h& void main() { double a=3.5,b=6,*pa,* pa=&a; pb=&b; *pa=4.5; pa=&b; printf(&%f %f %f %f\n&,a,b,*pa,*pb); } 解: 4.000 6..000000
2. #include&stdio.h& void main() { int a[]={2,4,6,8,10}; int x,y=0, *p; p=a; for(x=0;x&5;x++) y+=*p++; printf(&%d&,y); } 解: 30 3. #include&stdio.h& void ast(int x,int y,int *cp,int *dp) { *cp=x+y; *dp=x-y; x=*cp+* y=*cp-* } void main() { int x,y,c,d; 59 x=4; y=3;
ast(x,y,&c,&d); printf(&%d,%d,%d,%d\n&,x,y,c,d); } 解: 4,3,7,1 *4. #include &stdio.h& #include &string.h& void del_bk(char *p) { char *p1; p1=p; while(*p1!='\0') if(*p1=='
'&&*(p1+1)==' ') strcpy(p1,p1+1); else p1++; } void main() { char *aa=&aa bb cccc ddd efg
printf(&%s\n&,aa); del_bk(aa); printf(&%s\n&,aa); } h&; cccc ddd efg 解:aa bb aa bb cccc ddd efg h *5. h #include&stdio.h& void swap1(int x, int y) { t=x; x=y; y=t; } void swap2(int *x, int *y) { int *t; t=x; x=y; y=t; } void swap3(int *x,int *y) { t=*x; *x=*y;*y=t; } void main() { int x,y,*px,* x=100; y=300; swap1(x,y); printf(&x=%d y=%d\n&,x,y); x=100; y=300; px=&x; py=&y; swap2(&x,&y); printf(&x=%d y=%d *px=%d *py=%d\n&, x,y,*px ,*py); x=100; y=300; px=&x; py=&y; swap3(px,py); printf(&x=%d y=%d *px=%d *py=%d\n&, x,y,*px,*py); } 解:x=100 y=300 60 x=100 y=300 *px=100 *py=300 x=300 y=100 *px=300 *py=100 *6. #include&stdio.h& #include &string.h& void main() { char
*a[3]={&morning&,&afternoon&,&evening&}, * int i,j, k=0; for(j=0;j&2;j++) { k=j; for (i=j+1; i&2 ; i++) if(strcmp(a[k],a[i])&0) k=i; t=a[k];a[k]=a[j];a[j]=t; } for(i=0;i&3;i++) printf(&%c\n&,*a[i]); } 解: a m e 三、填空题 *1.设对变量、数组或函数已有如下定义或声明: int *pa,m,y=4, x[3][4]; char a[10]={&HELLO&}; float b[3][4],z; int f(int int ); float g(float float); 利用上述已给出的定义或声明,选择适当的项目给下列定义的变量分别赋初值: int **px ,*pm,n *pz[3]; float (*pb)[4]; char *s; float (*p)(float,float) ; px= ;pm= ;n= ; pz[0]= ;pz[1]= ;pz[2]= pb= ; s= ; p= ; ; 解: px=& pm=& n=y pz[0]=x0];pz[1]=x[1];pz[2]=x[2]; pb=b; s= p=
2.函数 int fun(char *s),判断输入的字符串是否“回文” 。若是回文,函数返回 1;否则 函数返回 0。 (注:字符串顺读和倒读都一样,则是回文。如: “asxsa”是回文, “asxdsa” 不是回文。 ) #include &string.h& int fun( char *s ) { char *p, *q; n=strlen(s); q= ; for(p=s; p&=q; q--, if (*p!=*q) ; if ( p&q) ) 61 else } return(1) ; ② p++ ③ return (0) 解:① s+n-1;
3.下列程序求二维数组 a 中的最大值与 b 中的最大值之差,填空将下列程序补充完整。 #include &stdio.h& #include &string.h& float find_max( ) { int i,j; float max=**x; for(i=0;i&m;i++) for(j=0;j&n;j++) if(*(*(x+i)+j)&max) max= } void main() { float a[5][5],b[6][4], int i,j; for(i=0;i&5;i++) pa[i]=a[i]; ; for(i=0;i&5;i++) for(j=0;j&5;j++) scanf(&%f&,&a[i][j]);
for(i=0;i&6;i++) for(j=0;j&4;j++) scanf(&%f&,&b[i][j]);
printf(&%f\n&,find_max(pa,5,5)-find_max(pb,6,4)); } ② max=*(*(x+i)+j) 解:①find_max(float *x[],int m,int n ③ *pa[5],*pb[6] ④ for(i=0;i&6;i++) pb[i]=b[i]; //或 max=x[i][j]; *4.有 n 个人围成一圈,顺序排号,从第 1 个人开始报数,从 1 报到 m,凡报到 m 的人退 出圈子,问最后留下的是原来第几号的人?下列函数完成上述处理,其中 m、n 的(m&n) 值由主调函数输入,函数返回值为所求结果。请填空将函数补充完整。 int del_n( { int i,del=0,k=0; for(i=0;i&n;i++) *(p+i)=1; while(del&n-1) { for(i=0;i&n;i++) if(*(p+i)==1) { k++; if( { del++; *(p+i)=0; k=0; } } } for(i=0;i&n;i++) return i+1; } ; ) ,int n,int m) 解:①int *p,int n,int m ② k==m ③ if (*(p+i)!=0) 62 四、编程序(要求用指针完成) 1.定义三个整型变量 a、b 和
二个指针变量 qa、qb,输入 2 个整数,通过指针 qa、qb,将 两个整数分别存储到变量 a、b 后,通过指针 qa、qb 操作,使 qa 指向较小的整数,qb 指向 较大的整数,并输出。 解:#include&stdio.h& void main() { int a,b,*qa=&a,*qb=&b; scanf(“%d%d”,qa,qb); if(*qa&*qb) { qa=&b; qb=&a; } printf(“%d,%d\n”,*qa,*qb); } 2.输入 10 个数,按绝对值从小到大排序后输出。要求定义一个函数 sort,完成绝对值从小 到大排序。 解:#include&stdio.h& #include&math.h& void main() { float a[10],*p, int i,j; for(p=a,i=0;i&10;i++)
scanf(&%f&,p++); for(p=a,i=0;i&10;i++,p++) printf(&%.2f,&,*p); printf(&\n&); for(i=0;i&10;i++) { p=a+i; for(j=i+1;j&10;j++) if(fabs(*(a+j))&fabs(*p)) p=a+j; temp=*(a+i);*(a+i)=*p;*p= } for(p=a,i=0;i&10;i++,p++) printf(&%.2f,&,*p); printf(&\n&); } 3.输入 n 和 x,n 和 x 分别表示对数组前 n 个元素赋初值为 x。要求定义一个函数 value, 完成对一维整型数组的 n 个元素进行赋值,具体赋值 x。 解:#include&stdio.h& void value(double *a,int n,double x) { for(i=0;i&n;i++) *(a+i)=x; } void main() 63 { double a[10],x; int i,n; printf (“Input n x:\n&); scanf(&%d%lf&,&n,&x); value(a,n,x); for(i=0;i&n;i++) printf(&%8.2f&,*(a+i)); } 4.定义一个函数,将一个字符串中的所有小写字母转换为相应的大写字母,其余字符不变。 解:#include&stdio.h& void main() { char a[80],*p; int i,j; gets(a); for(p=a;*p!='\0';p++) if (*p&='a' && *p&='z') *p-=32; puts(a); } 5.定义一个函数,将数组中最大值及最小值交换位置。 解:#include&stdio.h& void f(int *a,int n) { int i,*p,*q,t; for(i=0,p=q=a;i&n;i++) { if(*p&*(a+i)) p=a+i; if(*q&*(a+i)) q=a+i; } t=*p;*p=*q;*q=t; } void main() { int a[10],i; for(i=0;i&10;i++)
scanf(&%d&,a+i); f(a,10); for(i=0;i&10;i++) printf(&%d &,*(a+i)); } 6.定义一个函数,计算两个数的和与乘积。 解:#include&stdio.h& void f(double x,double y,double *p,double *q) { 64 *p=x+y; *q=x*y; } void main() { double a,b,add, printf (&Input a b:\n&);
scanf(&%lf%lf&,&a,&b); f(a,b,&add,&mult); printf(&add=%-8.2f mult=%-8.2f\n&,add,mult); }
*7.输入一个年号,输出它是否润年及元旦星期几。要求定义一个函数同时返回是否闰年和 元旦星期几。 解:#include&stdio.h& int leap(int year) // 函数判断是否是闰年,是返回 1,不是返回 0 { return (year%4==0&&year%100!=0 || year%400==0); } int week(int year,int *res) { int sum=0,i; for(i=1;i&i++) // 计算从公元 1 年元旦到 year 年元旦前的天数 if(leap(i)) sum+=366; // 闰年全年 366 天 else sum+=365; // 闰年全年 365 天 *res=(sum%7+1)==7?0: sum%7+1; // 公元 1 年元旦是星期一 return(leap(year)); // 函数返回 1 或 0 } void main() { int year,n; char *weekday[7]={“星期日”, “星期一”, “星期二”, “星期三”, “星期四”, “星 期五”, “星期六”}; printf (&请输入年号:\n&); scanf(&%d&,&year); if(week(year,&n)) printf(&%d 是闰年,元旦是%s\n&,year,weekday[n]); else printf(&%d 不是闰年,元旦
是%s\n&,year,weekday[n]); } *8.定义一个函数,将字符串复制到字符数组中,并返回该字符
串指针。 解:#include&stdio.h& char *mystrcpy(char *s1,char *s2 ) // 指针变量 s1 指向目的数组,s2 指向字符串 { char *p=s2; // p 指向字符串 while(*s2!=?\0?) { *s1=*s2; 65 s1++; s2++; } *s1=?\0?; } void main() { char str1[100],*ps=”aaa bbbbb ss p=mystrcpy(str1,ps); // 调用函数 puts(str1); puts(p); } dd ttt”,*p; *9.编写函数,将字符串中连续的相同字符仅保留 1 个(字符串“a bb cccd d 为“a b cd d ef”。 ) 解:#include&stdio.h& void del(char s[]) { char *p,*q,c; p=s; q=s+1; for(;*p!='\0';q++) if (*p!=*q) { *(p+1)=*q; p++; } } void
main() { char a[80]; gets(a); del(a); puts(a); } ef”处理后 10.编写函数,将 double 类型二维数组的每一行同除以该行上绝对值最大的元素。 解:#include&stdio.h& #include&math.h& void fun(float a[][4],int n,int m) { int i,j; for(i=0;i&n;i++) { max=**(a+i); for(j=1;j&m;j++) if(fabs(*(*(a+i)+j))&fabs(max)) max=*(*(a+i)+j); 66 for(j=0;j&m;j++) (*(*(a+i)+j))/= } } void main() { int i,j,n=3,m=4; float a[3][4]; for(i=0;i&n;i++) for(j=0;j&m;j++)
scanf(&%f&,&a[i][j]); fun(a,n,m); for(i=0;i&n;i++) { for(j=0;j&m;j++) printf(&%8.2f&,a[i][j]);
printf(&\n&); } } 11.编写函数,将 5×5 的矩阵转置。 解:#include&stdio.h& void fun(float a[][5]) { int i,j; for(i=0;i&5;i++) { for(j=0;j&i;j++) { temp=(*(*(a+i)+j));
*(*(a+i)+j)=(*(*(a+j)+i)); (*(*(a+j)+i))= } } } void main() { int i,j; float a[5][5];
for(i=0;i&5;i++) for(j=0;j&5;j++) scanf(&%f&,&a[i][j]); fun(a); for(i=0;i&5;i++) { for(j=0;j&5;j++) printf(&%.0f&,a[i][j]); printf(&\n&); } } 12.编写函数,将 5×5 的二维数组每行中最大值,按一一对应的顺序放入一维数组中。如 int a[5][5],s[5],即将 a 中的第 1 行最大值存放于 s[0],将 a 中的第 2 行最大值存放于 s[1], 以此类推。 解:#include&stdio.h& 67 void fun(int a[][5],int m[]) { int i,j, for(i=0;i&5;i++) { max=**(a+i); for(j=0;j&5;j++) if (max&*(*(a+i)+j)) max=*(*(a+i)+j); *(m+i)= } } void main() { int i,j; int a[5][5],b[5]; for(i=0;i&5;i++)
for(j=0;j&5;j++) scanf(&%d&,&a[i][j]); fun(a,b); for(i=0;i&5;i++) printf(&每行最大值:%d &,b[i]); }
13.编写函数,根据星期几的数值(0~6) ,输出该星期几的英文名。 解:#include&stdio.h& void findweek(int week) { char *p[]={&SUN&,&MON&,&TUE&,&WED&,&THU&,&FRI&,&SAT&}; puts(p[week]); } void main() { printf(&请输入星期几(0~6)\n&); scanf(&%d&,&w); if (w&=0&&w&=6) findweek(w); else printf(&数据输入错误!\n&); } 14.编写函数,根据月份号,输出该月的英文名。 解:#include&stdio.h& void findmonth(int m) { char
*p[]={&Jan.&,&Feb.&,&Mar.&,&Apr.&,&May.&,&Jun.&,&July.&, &Aug.&,&Sept.&,&Oct.&,&Nov.&,&Dec.&}; puts(p[m-1]); } void main() { printf(&请输入月份(1--12)\n&); scanf(&%d&,&no); 68 if (no&=1&&no&=12) findmonth(no); else printf(&数据输入错误!\n&); } 15.输入 5 个字符串,输出其中最长的字符串。 解:#include &stdio.h& #include &string.h& void main() { char
str[5][100],*p[5]; int i,k; // // 用 k 记录最长字符串所在的行下标 for(i=0;i&5;i++) // 指针数
包含各类专业文献、行业资料、高等教育、专业论文、幼儿教育、小学教育、外语学习资料、c语言的答案03等内容。 
 C语言考试题库及答案_IT认证_资格考试/认证_教育专区 暂无评价|0人阅读|0次下载|举报文档C语言考试题库及答案_IT认证_资格考试/认证_教育专区。C 语言理论上机...  C语言习题集及答案_工学_高等教育_教育专区。 目录 第一单元 第二单元 第三单元 第四单元 第五单元 第六单元 第七单元 第八单元 第九单元 程序...  C语言课后习题答案2014年新版(完整版)_理学_高等教育_教育专区。《大学C/C++语言程序设计基础(第2版)》(阳小华主编)习题答案习 题 1(参考答案) 1.程序与算法...  C语言程序设计(谭浩强)第四版_课后答案_工学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档C语言程序设计(谭浩强)第四版_课后答案_工学_高等教育_教育...  C语言教材后习题及答案_IT认证_资格考试/认证_教育专区。张吴波版 C 语言教材习题及答案 1 / 25p 第一章 1.什么是程序?什么是程序设计语言? 2.C 语言有...  C语言经典例题及答案_哲学_高等教育_教育专区。39道c语言经典题有答案 作业一一、求一个任意边长的矩形面积。 #include &stdio.h& void main() {int w,h,...  C语言答案(程立倩主编)_院校资料_高等教育_教育专区。C语言课后习题答案(程立倩主编) 《C 语言程序设计案例教程》 课后部分习题答案模块 1 初识 C 语言一、选择...  C语言编程题及答案_工学_高等教育_教育专区。语言编程题 C 语言编程题 1. (*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21... 前 20 项的和。 main...  c语言课后答案_IT认证_资格考试/认证_教育专区。c语言课后答案c 语言课后答案第一章 习题答案 一、选择题 1~5:BDCDA 6~10:DABBB 11~12:CC 二、填空题 ...}

我要回帖

更多关于 c语言循环输出三角形 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信