C程序设计语言 第二版 自学 第一章

1-1
#include<stdio.h>
int main()
{
printf("Hello");
printf("word(对不起 再也不会了)");
printf("\n");
return 0;
}
1-2
#include<stdio.h>
int main()
{
//printf("\y");
printf("\a");
printf("\?");
return 0;
}
1-3
#include<stdio.h>
int main()
{
float fahr,celsius;
int lower,upper,step;
lower=0;upper=300;step=20;
fahr=lower;
printf("######TITLE#######\n");
while(fahr<=upper)
{
celsius=(5.0/9.0)*(fahr-32.0);
printf("%3.0f %6.1f\n",fahr,celsius);
fahr=fahr+step;
}
return 0;
}
1-4
#include<stdio.h>
int main()
{
float fahr,celsius;
int lower,upper,step;
lower=0;upper=300;step=20;
fahr=lower;
printf("######TITLE#######\n");
while(fahr<=upper)
{
celsius=(9.0/5.0)*(fahr+32.0);
printf("%3.0f %6.1f\n",fahr,celsius);
fahr=fahr+step;
}
return 0;
}
1-5
#include<stdio.h>
int main()
{
float fahr,celsius;
int lower,upper,step;
lower=0;upper=300;step=20;
fahr=upper;
printf("######TITLE#######\n");
while(fahr>=lower)
{
celsius=(5.0/9.0)*(fahr+32.0);
printf("%3.0f %6.1f\n",fahr,celsius);
fahr=fahr-step;
}
return 0;
}
1-6
#include<stdio.h>
int main()
{
int c;
while(c=getchar()!=EOF)
putchar(c);//windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认
。结 printf("%d",c); //束数据流的输入
return 0;
}
1-7
#include<stdio.h>
int main()
{
int c;
while((c=getchar())!=EOF)
putchar(c);//windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认
。结

printf("%d",c); //束数据流的输入
return 0;
}
1-8
#include<stdio.h>
int main()
{
int space, t, n;
space=0; t=0; n=0;
int c;
while((c=getchar())!=EOF)
{
if(c==' ') space++;
if(c=='\t') t++;
if(c=='\n') n++;
}

printf("%d %d %d",space,t,n);
return 0;
}
1-9
#include<stdio.h>
int main()
{
int c;
int temp;
while((c=getchar())!=EOF)
{
if(c!=' ')
{
putchar(c);
}
else
{
if(temp!=' '){putchar(c);}

}
temp=c;
}
return 0;
}
1-10
#include<stdio.h>
int main()
{
int c;
while((c=getchar())!=EOF)
{
if(c=='\t') printf("\\t");
if(c=='\b') printf("\\b");
if(c=='\\') printf("\\");
putchar(c);
}
return 0;
}
1-11
#include<stdio.h>
int main()
{
int c,temp;int count=0;
while((c=getchar())!=EOF)
{
if(c==' '||c=='\t'||c=='\n')
{
if((temp>='a'&&temp<='z')||(temp>='A'&&temp<='Z')) count++;
}
temp=c;
}
printf("%d",count);
return 0;
}
1-12
#include<stdio.h>
int main()
{
int c,temp;
while((c=getchar())!=EOF)
{
if((c>='a'&&c<'z')||(c>='A'&&c<='Z'))
{putchar(c);}
if(c==' '||c=='\t'||c=='\n')
{
if((temp>='a'&&temp<='z')||(temp>='A'&&temp=='Z'))printf("\n");
}
temp=c;
}

return 0;
}
1-13
#include<stdio.h>
int main()
{
int c,temp;
int count=0,i;
while((c=getchar())!=EOF)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){
putchar(c);count++;
}
else{
if((temp>='a'&&temp<='z')||(temp>='A'&&temp<='Z'))
{
for(i=0;i<count;i++)printf("*");
printf("\n");count=0;
}
}
temp=c;
}
return 0;
}
1-14
#include<stdio.h>
typedef struct a{
char c;int count;
}nmd;
int find(int i,nmd f[100],int length)
{
int k;
for(k=0;k<length;k++)
{
if(i==f[k].c){return k;break;}

}
if(k==length) return -1;
}
int main()
{
nmd f[10];
int sum=0;
int c;int n,m;
while((c=getchar())!=EOF)
{
int k;
k=find(c,f,sum);
if(k>=0){f[k].count++;}
if(k==-1){f[sum].c=c;f[sum].count=1;sum++;}
}
for(n=0;n<sum;n++)
{
putchar(f[n].c);
for(m=0;m<f[n].count;m++)
{ printf("*");}
printf("\n");
}
return 0;
}
1-15
#include<stdio.h>

int main()
{int i,j;int temp;
int c;int length=0;
int flag=0;int a[20]={0};
while((c=getchar())!=EOF)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
if(flag==0){flag=1;length++;}
else if(flag==1){length++;}
}
else
{
if(flag==1){flag=0;a[length]++;length=0;}

}
}
int max=0;
for(i=0;i<20;i++){if(max<a[i]) max=a[i];}temp=max;
for(i=0;i<max;i++)
{
for(j=1;j<20;j++)
{
if(a[j]<temp){printf("#");}
if(a[j]>=temp){printf("*");}
}
printf("\n");temp--;
}

return 0;
}
1-15
#include<stdio.h>
float fx(float n)
{
return ((5.0)/(9.0)*(n-32.0));
}
int main()
{
int lower,upper,step;
lower=0;upper=300;step=20;
int n=lower;
while(n<=upper)
{
printf("%3.0f %3.1f\n",(float)n,fx((float)n));
n+=step;
}
return 0;
}
1-16
#include<stdio.h>
int getline(char s[])
{
int c;int i=0;
while((c=getchar())!=EOF&&c!='\n')
{
s[i++]=c;
}
s[i]='\0';
return i;
}
int main()
{
char line[50];
while(getline(line)>0)
printf("%s\n",line);
return 0;
}
1-17
#include<stdio.h>
int getline(char s[])
{
int c;int i=0;
while((c=getchar())!=EOF&&c!='\n')
{
s[i++]=c;
}
s[i]='\0';
return i;
}
int main()
{
char line[50];
while(getline(line)>80)
printf("%s\n",line);
return 0;
}
1-18
#include<stdio.h>
int getline(char s[])
{
int c;int i=0;
while((c=getchar())!=EOF&&c!='\n')
{
s[i++]=c;
}
s[i]='\0';
return i;
}
void del(char s[],int length)
{
int i=length-1;
for(;i>0;i--)
{
if((s[i]==' ')||(s[i]=='\t'))
s[i]='*';
else{break;}
}
}
int main()
{
char line[50];int length;
while((length=getline(line))>0)
{ printf("%s\n",line);del(line,length);printf("%s\n",line);}
return 0;
}
1-19
#include<stdio.h>
int getline(char s[])
{
int c;int i=0;
while((c=getchar())!=EOF&&c!='\n')
{
s[i++]=c;
}
s[i]='\0';
return i;
}

void del(char s[],int length)
{
int i=length-1;int j=0;
char c;
while(j<i)
{
c=s[i];
s[i]=s[j];
s[j]=c;
j++;i--;
}

}
int main()
{
char line[50];int length;
while((length=getline(line))>0)
{ printf("%s\n",line);del(line,length);printf("%s\n",line);}
return 0;
}
1-20
#include<stdio.h>
#define TABINC 8
int main()
{
int c,nb,pos;
pos=1;
nb=0;
while((c=getchar())!=EOF)
{
if(c=='\t')
{
nb=TABINC-(pos-1)%TABINC;
while(nb>0){putchar('*');pos++;nb--;}
}
else if(c=='\n'){pos=1;putchar(c);}
else{putchar(c);pos++;}
}
return 0;
}
1-21
#include<stdio.h>
#define TABINC 8
int main()
{
int c,nb,pos,nt;
pos=1;
nb=0;nt=0;
while((c=getchar())!=EOF)
{
if(c==' ')
{
if(pos%TABINC==0){nb=0;nt++;}
else{nb++;}
pos++;
}
else
{
for(;nt>0;nt--)putchar('\t');
if(c=='\t') nb=0;
for(;nb>0;nb--) putchar(' ');
putchar(c);
if(c=='\n'){pos=1;}
if(c=='\t'){pos+=(TABINC-(pos-1)%TABINC);}
}
}
return 0;
}
1-22
#include<stdio.h>
#define TABINC 8
#define MAXCOL 10
char line[MAXCOL];
void printl(int pos)
{
int i;
for(i=0;i<pos;i++)
{
putchar(line[i]);
}
if(pos>0){putchar('\n');}
}
int exptab(int pos)
{
line[pos]=' ';pos++;
for(;pos<MAXCOL&&(pos%TABINC!=0);pos++)
{
line[pos]=' ';
}
if(pos<MAXCOL) return pos;
else{
printl(pos); return 0;
}
}
int findlank(int pos)
{
while(pos>0&&line[pos]!=' ')pos--;
if(pos==0) return MAXCOL;
else pos+1;
}
int newpos(int pos)
{
int i,j;
if(pos<=0||pos>=MAXCOL) return 0;
else {
i=0;
for(j=pos;j<MAXCOL;j--)
{line[i]=line[j];i++;}
return i;
}
}
int main()
{
int c;
int pos=0;
while((c=getchar())!=EOF)
{
line[pos]=c;
if(c=='\t') pos=exptab(pos);
else if(c=='\n') {printl(pos);pos=0;}
else if(++pos>=MAXCOL){pos=findlank(pos);printl(pos);pos=newpos(pos);}
}
return 0;
}
1-23
#include<stdio.h>
void in_comment(void);
void recomment(int c);
void echo_quote(int c);
int main()
{
int c,d;
while((c=getchar())!=EOF)
{
recomment(c);
}
return 0;
}
void recomment(int c)
{
int d;
if(c=='/')
{
if((d=getchar())=='*') in_comment();
else if(d=='/') putchar(c);
else {putchar(c);putchar(d);}
}
else if(c=='\''||c=='"') echo_quote(c);
else putchar(c);
}
void in_comment(void)
{
int c=getchar();int d=getchar();
while(c!='*' || d!='/')
{
c=d;d=getchar();
}

}

void echo_quote(int c)
{
int d;
putchar(c);
while((d=getchar())!=c)
{
putchar(d);
if(d=='\\') putchar(getchar());
}
putchar(d);
}
1-24

#include<stdio.h>
void in_quote(int c);
void in_comment(void);
void search(int c);
int brace, break1, paren;
int main()
{
int c;
while((c=getchar())!=EOF)
{
if(c=='/'){
if((c=getchar())=='*') in_comment;
else search(c);
}
else if(c=='\''|| c=='"')
in_quote(c);
else search(c);
if(brace<0)
{printf("unbalanced braces"); brace=0;}
else if(break1<0)
{printf("unbalanced brackets"); break1=0;}
else if(paren<0)
{printf("unbalanced parentheses"); paren=0;}
}
if(brace>0)
{printf("unbalanced braces"); brace=0;}
else if(break1>0)
{printf("unbalanced brackets"); break1=0;}
else if(paren>0)
{printf("unbalanced parentheses"); paren=0;}
return 0;
}
void search(int c)
{
if(c=='{') ++brace;
else if(c=='}') --brace;
else if(c=='[') ++break1;
else if(c==']') --break1;
else if(c=='(') ++paren;
else if(c==')') --paren;
}
void in_comment(void)
{
int c=getchar();int d=getchar();
while(c!='*'|| d!='/')
{
c=d;d=getchar();
}
}
void in_quote(int c)
{
int d;
while((d=getchar())!=c)
{
if(d=='\\') getchar();
}
}

 

转载于:https://www.cnblogs.com/changgf/p/10859178.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值