实验2
开门见山
实验任务1
#include <stdio.h> int main() { int a=5, b=7, c=100, d, e, f; d = a/b*c; e = a*c/b; f = c/b*a; printf("d=%d, e=%d, f=%d\n",d,e,f); return 0; }

Line6-8所对应的表达式:
d = a/b*c 对应<!--a除以b,取整后再乘以c-->
e = a*c/b 对应;<!--a乘以c,再除以b,取整-->
f = c/b*a; 对应<!--c除以b,取整后再乘以a-->
d,e,f计算结果不同的原因:在c语言中,int数据与int数据相除的结果会被自动取整。
实验任务2
#include<stdio.h> int main(){ int x=1234; float f=123.456; double m=123.456; char ch='a'; char a[]="Hello,World!"; int y=3,z=4; printf("%d %d\n",y,z); printf("y=%d,z=%d\n",y,z); printf("%8d,%2d\n",x,x); printf("%f, %8f, %8.1f, %0.2f, %.2e\n",f,f,f,f,f); printf("%lf\n",m); printf("%3c\n",ch); printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a); return 0; }
用法
<!--输出格式字符-->
c:按字符输出
d:按浮点数输出
e:按指数形式输出
f:按单精度浮点型型输出
lf:按双精度浮点型输出
s:按字符串输出
<!--修饰符-->
m:输出宽度若不足m,则左边腾出空格直到宽度=m
.n:规定小数点后位数
实验任务3
#include <stdio.h> int main() { double x,y; char c1,c2,c3; int a1,a2,a3; scanf("%d%d%d",&a1,&a2,&a3); printf("%d,%d,%d\n",a1,a2,a3); scanf("%c%c%c",&c1,&c2,&c3); printf("%c%c%c\n",c1,c2,c3); scanf("%lf,%lf",&x,&y); printf("%.1f,%.1lf\n",x,y); return 0; }

实验任务4
#include <stdio.h> int main() { char c; scanf("%c",&c); if(c>47&&c<58) printf("%c是数字字符\n",c); else if(c>64&&c<91||c>96&&c<123) printf("%c是英文字母\n",c); else printf("%c是其他字符\n",c); return 0; }



实验任务5
#include <stdio.h> int main() { char ans1, ans2; printf("复习了没? (输入y或Y表示复习了,输入n或N表示没复习) : "); ans1 = getchar(); // 从键盘输入一个字符,赋值给ans1 getchar(); // 思考这里为什么要加这一行。试着去掉这一行,看看对运行有没有影响。 printf("\n动手敲代码了没? (输入y或Y表示敲了,输入n或N表示木有敲) : "); ans2 = getchar(); if((ans1=='y'||ans1=='Y')&&(ans2=='y'||ans2=='Y'))//待补足,判断用户回答ans1和ans2都是小写y或大写Y printf("\n罗马不是一天建成的:)\n"); else printf("\n罗马不是一天毁灭的。。。\n"); return 0; }



#include <stdio.h> int mama(int x); int main() { int n,sum=0; scanf("%d",&n); for(int i=0;i<n;i++){ //循环:从i=0开始,求2^0+2^1+···+2^(n-1) sum+=mama(i); } printf("n = %d时,sum = %d\n",n,sum); return 0; } int mama(int x){ //mama函数是:输入x,得到2的x次方 int sum=1; for(int i=0;i<x;i++)sum*=2; if (x==0)sum=1; return sum; }



***
实验任务7
***
#include <stdio.h> int main(int argc, const char * argv[]) { for(int i=0;i<5;i++){ for(int j=0;j<i;j++){ //打空格 printf("\t\t"); } for(int j=0;j<9-2*i;j++){ //这个for打一行O printf(" O \t\t"); }printf("\n"); for(int j=0;j<i;j++){ //打空格 printf("\t\t"); } for(int j=0;j<9-2*i;j++){ //这个for打一行<H> printf("<H>\t\t"); }printf("\n"); for(int j=0;j<i;j++){ //打空格 printf("\t\t"); } for(int j=0;j<9-2*i;j++){ //这个for打一行I I printf("I I\t\t"); }printf("\n\n"); } return 0; }

实验总结
编程软件大同小异,龙生九子各有不同
%lf是个好东西
要快乐地编程,要编程的快乐
修饰符,这个东西要动点脑筋去记,里面概念比较多,要动手敲代码才能吃透
Xcode似乎无法修改黑框里的代码颜色,或者说,要修改需要配置相关环境。
👴对本次实验😊,👴学到了很多,本次实验真是让👴醍醐灌顶🦷

浙公网安备 33010602011771号