博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《The C Programming Language》答案(第三章)
阅读量:4169 次
发布时间:2019-05-26

本文共 4814 字,大约阅读时间需要 16 分钟。

《The C Programming Language》答案(第三章)

我的新站

P1

#include 
int binsearch(int x,int v[],int n){
int low = 0; int high = n-1; int mid; while(low

P2

void escape(char s[],char t[]){
int i,j; for(i=0,j=0;t[i]!='\0';i++){
switch(t[i]){
case '\n': s[j++]='\\'; s[j++]='n'; break; case '\t': s[j++]='\\'; s[j++]='t'; break; case '\v': s[j++]='\\'; s[j++]='v'; break; case '\b': s[j++]='\\'; s[j++]='b'; break; case '\r': s[j++]='\\'; s[j++]='r'; break; case '\f': s[j++]='\\'; s[j++]='f'; break; case '\a': s[j++]='\\'; s[j++]='a'; break; case '\?': s[j++]='\\'; s[j++]='\?'; break; case '\'': s[j++]='\\'; s[j++]='\''; break; case '\"': s[j++]='\\'; s[j++]='\"'; break; default: s[j++]=t[i]; break; } } s[j]='\0';}void unescape(char s[],char t[]){
int i,j; for(i=0,j=0;t[i]!='\0';i++){
if(t[i]=='\\'){
switch(t[++i]){
case 'n': s[j++]='\n'; break; case 't': s[j++]='\t'; break; case 'v': s[j++]='\v'; break; case 'b': s[j++]='\b'; break; case 'r': s[j++]='\r'; break; case 'f': s[j++]='\f'; break; case 'a': s[j++]='\a'; break; case '\\': s[j++]='\\'; break; case '\?': s[j++]='\?'; break; case '\'': s[j++]='\''; break; case '\"': s[j++]='\"'; break; default: s[j++]='\\'; --i; break; } }else{
s[j++]=t[i]; } } s[j] = '\0';}

P3

//buggy!#include 
#define MAXLINE 1024int getchars(char s[],int lim){
int c,i,l; for(i=0,l=0;(c=getchar())!=EOF;i++){
if(i

P4

#include 
#include
#define MAXLINE 1024void itoa(int n, char s[]){
int i, sign, remainder; sign = n; i = 0; do {
remainder = n % 10; s[i++] = ((sign < 0) ? -remainder : remainder) + '0'; } while (n /= 10); if (sign < 0) s[i++] = '-'; s[i] = '\0'; reverse(s);}void reverse(char s[]){
int i, j; int tmp; for (j = 0; s[j] != '\0'; ++j) ; --j; for (i = 0; i < j; ++i, --j) {
tmp = s[i]; s[i] = s[j]; s[j] = tmp; }}int main(){
char s[MAXLINE]; itoa(INT_MIN,s); printf("%d ---> %s\n",INT_MIN,s);}

P5

#include 
#include
#define MAXLINE 1024void reverse(char s[]){
int i, j; int tmp; for (j = 0; s[j] != '\0'; ++j) ; --j; for (i = 0; i < j; ++i, --j) {
tmp = s[i]; s[i] = s[j]; s[j] = tmp; }}void itob(int n, char s[], int b){
int i, sign, remainder; if (b < 2 || b > 36) return; sign = n; i = 0; do {
remainder = n % b; s[i++] = ((sign < 0) ? -remainder : remainder) + '0'; } while (n /= b); if (sign < 0) s[i++] = '-'; s[i] = '\0'; reverse(s);}int main(){
char s[MAXLINE]; itob(INT_MIN,s,8); printf("%d ---> %s",INT_MIN,s);}

P6

#include 
#include
#define MAXLINE 1024void reverse(char s[]){
int i, j; int tmp; for (j = 0; s[j] != '\0'; ++j) ; --j; for (i = 0; i < j; ++i, --j) {
tmp = s[i]; s[i] = s[j]; s[j] = tmp; }}void itoa(int n, char s[], int w){
int i, sign, remainder, k, j; sign = n; i = 0; do {
remainder = n % 10; s[i++] = ((sign < 0) ? -remainder : remainder) + '0'; } while (n /= 10); if (sign < 0) s[i++] = '-'; while (i < w) s[i++] = ' '; s[i] = '\0'; reverse(s);}int main(){
char s[MAXLINE]; int width = 14; itoa(INT_MIN,s,width); printf("%12d ---> %s\n",INT_MIN,s);}

第三章 完

转载地址:http://sfwai.baihongyu.com/

你可能感兴趣的文章
区块链解读5-名词解释
查看>>
区块链解读6-区块链框架分析+超级账本(Hyperledger Fabric)基础
查看>>
区块链解读7-区块链1.0(比特币技术)
查看>>
区块链应用场景-1
查看>>
区块链应用场景-2
查看>>
区块链解读,区块链与其他技术的结合
查看>>
解读区块链,软分叉和硬分叉
查看>>
解读区块链-跨链技术
查看>>
区块链解读-隔离见证
查看>>
区块链解读-零知识证明
查看>>
区块链解读-区块链金融
查看>>
区块链入门-完整版V1.0-part-1
查看>>
区块链入门-完整版V1.0-Part2
查看>>
区块链入门-完整版V1.0-Part3
查看>>
区块链入门-完整版V1.0-Part4
查看>>
区块链入门-完整版V1.0-Part5
查看>>
区块链入门-完整版V1.0-Part6
查看>>
区块链入门-完整版V1.0-Part7
查看>>
区块链入门-完整版V1.0-Part8
查看>>
区块链入门-完整版V1.0-Part9
查看>>