本文由huangwen199002贡献
    doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
    语言程序设计教程》 《C 语言程序设计教程》习题参考答案
    默认分类 2007-09-10 12:38:44 阅读 6618 评论 13 【习题 1】 一、简答题(在课本中寻答案,略) 1.1 C 程序的基本结构包括哪些内容? 1.2 如何定义标识符? 1.3 输入格式、输出格式的组成包括哪些内容? 1.4 C 语言函数分为哪两类? 1.5 计算表达式的值应该考虑哪些方面? 1.6 上机调试程序的步骤如何? 二、判断并改错 1.7 C 程序执行的入口是 main()函数,所以 main 函数必须放在程序的开头。 错误:main 函数可以放在程序的任何位置。并不限定在程序的开头。 1.8 定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 1.9 编辑与编译不是一回事。 错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则 生成目标程序。 1.10 scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。 正确 1.11 注释内容太多会影响程序的执行效率。 错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容 不会编译到目标程序中。 1.12 所有的数学公式可
以直接出现在源程序中。 错误:数学公式需要转换成 C 语言能够接受的公式才能出现在源程序中。 三、编程题 1.13 在屏幕上输出自己名字的拼音。 提示:中文名字叫“张三”,对应的拼音为“Zhang San”,输出用 printf()函数。 1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。 提示:定义圆的半径 r,圆的周长:2*3.14*r,输出结果保留 2 位小数可以用%.2f 1.15 输入两个整数,输出其中最大者。 提示:模仿例 1.3 1.16 输入三个整数,输出其中最小者。 提示: min(min(a,b),c); 【习题 2】 一、简答题(在课本中寻答案,略) 2.1 常量与变量的区别? 2.2 C 语言中的标识符的定义规则? 2.3 变量为什么要“先定义,后使用”? 2.4 字符常量'a'与字符串常量"a"有何区别? 2.5 大小写字母转换的规则是什么? 2.6 变量的具有哪三种属性? 字号:大中小 订阅
    二、单项选择题 2.7 C 语言中,int 型数据在内存中的存储形式是(D)。 B)原码 C)反码 D)补码 下面四个选项中,均是不合法的用户标识符的选项是(C)。 A)ASCII 码 2.8
    A)BA 、x_0、do B)float、1a0、_Y C)x-y、goto、123 D)_123、tmp、CHAR 2.9 下列选项中不正确的常数的选项是(D)。 B)-1.23E-2 B)'\\' B)'376' B)67.0 B)0x100 C)"\n" 
C)"\\n" C)12.0 D)"\376" D)376 D)67L D)64 D)0388 下面正确的字符常量是(B)。 下面正确的字符串常量是(C)。 表达式'A'+4*25.0-'b'的正确结果是(B)。 C)不确定 C)0X64 执行 printf("%x",100);后的输出结果是(C)。 int 型的-1 在内存中的存储形式是(A)。 A)0x12F 2.10 A)"a" 2.11 A)'a' 2.12 A)67 2.13 A)100 2.14
    A)1111 1111 1111 1111 B)0000 0000 0000 0001 C)1111 1111 1111 1110 D)1000 0000 0000 0001 2.15 存储字符串"\\\'abc\376"需要的字节数是(D)。 B)13 C)6 D)7 A)11
    【习题 3】 一、计算题 3.1 2.8+7%3*11%2/4 3.2 5/2+5.0/2+7%6 3.3 a=12,a*=2+3 (答案:2.8) (答案:5.5) (答案:a=60) (答案:0)
    3.4 a=3,b=4,c=5,a+b>c&&b= =c 3.5 3>5?3:5<8?25:40 (答案:25)
    3.6 设 a=1,b=2,c=3,d=4,m=n=1,有表达式(m=a>b)&&(n=c>d),计算表达式后 m,n 的值? (答案:m=0,n=1) 3.7 设 int b=7;float a=2.5,c=4.7;求下面表达式的值。 a+(int)(b/2*(int)(a+c)/2)%4 二、单项选择题 3.8 若有代数式 ,则不正确的 C 语言表达式是(C)。 B)8*x*y/b/c D)x*y/c/b*8 (答案:4.5)
    A)x/b/c*y*8 C)8*x*y/b*c 3.9
c语言二维数组表示方法    有如下类型说明:
    int k,a,b; unsigned long w=8; double x=2.9
    则以下不符合 C 语言语法的表达式是(A)。 A)x%(-3) B)w*=-2 D)a*=a+=a-=(b=4)*(a=3) C)k=(a=6,b=4,a-b) 3.10
    有如下类型说明:
    float n; int m; 则以下能实现将 n 中的数值保留小数点后两位,第三位四舍五入的表达式是(B)。 A)n=(n*100+0.5)/100.0 C)n=n*100+0.5/100.0 3.11 A)x%=(k%=5) C)x%=k-k%5 3.12 
A)0 3.13 B)1 B)m=n*100+0.5,n=m/100.0 D)n=(n/100+0.5)*100.0 B)x%=(k-k%5) D)(x%=k)-(k%=5) C)真 D)非 0 C)!(a%2) D)1.500000 D)a%2
    设 k=7,x=12;则下列表达式值为 3 的是(D)。
    已知 m=48,ch='a',n=0;则表达式(m>=n&&ch<'b'&&!n)的值是(B)。 下面哪个式子在 b 为奇数时结果为假(C)。 B)!(a%2==0) C)1.5 执行 printf("%f",(x=3,y=5,x>y?1:1.5));后的输出结果是(D)。 能表示条件 0≤x≤100 的表达式是(D)。 B)x>=0,x<=100 D)x>=0&&x<=100 B)ch>='0'&&ch<='9' D)ch>='0'||ch<='9'
    A)a%2==1 3.13
    A)语法错误 B)1 3.14 A)0<=x<=100 C)0≤x≤100 3.15
    判断 char 型变量 ch 为数字的正确表达式是(B)。
    A)ch>="0"&&ch<="9" C)'0'≤ch≤'9'
    三、编程题(应用条件运算) 3.16 输入一个整型成绩 x,3.17 如果大于等于 60 分,3.18 输出“pass”,3.19 否则输出“fail”。 提示:printf("%s",x>60?"pass":"fail"); 3.17 输入一个年份 y,如果是闰年,输出“y is a leap year”,否则输出“y is not a leap year.” 输入三条边 a,b,c,如果它们能构成一个三角形,输出“Yes”,否则输出“No”。 输入三个数 x,y,z,按从小到大的输出结果。 提示:printf("%d is %s",y%4==0&&y%100!=0||y%400==0?"a leap year.":"not a leap year."); 3.18 提示:printf("%s",a+b>c&&a+c>b&&b+c>a?"Yes":"No"); 3.19 提示:分别用 max0,min0 代表最大、最小值,mid0 表示中间值。 max0=(x>y?x:y)>z?(x>y?x:y):z;max0=(x<y?x:y)<z?(x<y?x:y):z; mid0=x+y+z-max0-min0; 3.20 输入一个平面上的点坐标,判断它是否落在圆心(0,0),半径为 1 的圆内,如果在圆内,输出“Yes”, 否则输出“No”。 提示:分别用 x,y 代表平面上一个点。 printf("%s",x*x+y*y<=0?"Yes":"No"); 【习题 4】 以下的编程题目要求首先画出程序的传统流程图或 N-S 流程图,再编写程序代码。上机实验时再输入到计 算机中进行调试,并将调试过程中出现的问题和测试情况记录下来。 (流程图请读者自己参考课本自己画,略) 4.1 编程实现,输入一个整数,判断它是否为偶数,并显示相应的信息。
    提示:x 代表输入的整数,if(x%2==0) printf("\neven");else printf("\nodd"); 4.2 编程实现,输入一个平面上的点,判断它是否落在单位圆上,并显示相应的信息。 提示:x,y 代表平面坐标,if(x*x+y*y==1) printf("\nYes");else printf("\nNo"); 4.3 编程实现,输入一个成绩等级(A-E),显示相应的百分制成绩段。 A: 90-100 B: 80-89 C: 70-79 D: 60-69 E: <60 提示:char grade; if(grade=='A') printf("\n90-100"); else if(grade=='B') printf("\n80-89"); …… 4.4 写出下面程序的运行结果: #include main() { int a=-1,b=1,c=5; switch(a>0){ case 1:switch(b-2<0){ case 1:printf("&");break; case 2:printf("*");break; } case 0:switch(c= =5){ case 0:printf("!");break; case 1:printf("#");break; default:printf("%%"); } default:printf("@"); } } 运行结果:&# 4.5 将以下语句改写成 switch 语句。 if((t>0)&&(t<=10)) if((t>=3)&&(t<=6)) x=2; else if((t>1)||(t>8)) x=3; else x=1; else x=0; 提示:int t; if(t<=0||
t>10) c=0; else c=t; switch(t) { case 0: x=0;break; case 1: case 2: x=3;
    case 3:case 4:case 5: case 6: x=2; case 7:case 8: case 9: x=3; case 10: x=2; } 4.7 编程实现一个具有简单四则运算功能的计算器。 提示:参照例 4.18,随机产生 3 个数,其中一个数用来判断是哪种运算。 4.8 编程实现,输入一行字符,将其中的数字字符对应的整数值加起来并输出结果。如: a45b8&*3 则是 4+5+8+3,结果为 20。 提示:char c; int sum=0; while((c=getchar())!='\n') if(c>='0'&&c<='9') sum=sum+c-'0'; 4.9 编程实现,求 的值。 提示:先计算 n!,再在计算阶乘的外面套上一层循环。注意:20!是一个很大的值,float s=1;int i;例如:
 计算 6!: for(i=1;i<=6;i++) s=s*i; 4.10 编程实现,出 1000 之内的所有完数,并按下面格式输出其因子: 6 its factors are 1,2,3, 所谓“完数”是指一个数如果恰好等于它的因子之和,因子是指能够整除该数的数。 提示:先判断数是否为完数,如果是再考虑输出因子。以 6 为例输出因子: for(i=1;i<6;i++) if(6%i==0) printf("%d,",i); 4.11 编程
实现,计算序列的前 20 项之和, , , , , , ,…… 提示:这是一个累加式,每项是一个分式,用 a、b 分别表示分子、分母。注意:如果 a、b 都是整数,则 是整除。float sum=0,a=2,b=1; int i; for(i-1;i<=20;i++){sum=sum+a/b;a=a+b;b=a-b;} 4.12 编程实现,求 Sn=a+aa+aaa+……+ aa……a 之值,其中 a 是一个数字。如:2+22+222+2222+22222(此 时 n=5),n,a 由键盘输入。 提示:这是一个累加式,后 1 项可以由前一项表示,譬如:第 2 项可以由第 1 项表示: 第 1 项 t=a; 第 2 项:t=t*10+a; 4.13 编程实现,把从键盘输入的金额数(以圆为单位)按人民币面额划分,然后显示支付该金额的各种 面额人民币的数量。 提示:譬如:123.58 元可以表示 100 元:1 张;20 元:1 张;2 元:1 张;1 元:1 张;5 角:1 张;5 分: 1 枚;2 分:1 枚;1 分:1 枚。 为了简单可以只完成整数部分转换,即输入的金额数为整数。 4.14 编程实现,使用循环结构打印以下图案。 * *** ***** ******* ***** *** * 提示:输出时,本图案要按向上三角形和向下三角形进行输出。每行输出中包括空格输出,‘*’号输出。输 出空格和‘*’号个数要与行循环控制变量关联起来。 4.15 编程实现,以菜单方式实现猜数游戏系统。(功能自己设定)
    提示:模仿例 4.14 和例 4.18 完成。功能可以包括猜数范围,人数等设置。 4.
16 编程实现,以菜单方式实现四则运算辅助教学系统。 提示:随机产生两个操作数和运算符+、-、*、/,由使用者输入一个数,判断计算结果与输入的数是否相等, 如果相等,表示正确,否则是错误的。 【习题 5】 填空题 5.1 若有定义 int a[3][5];则排列在数组中的第 9 个元素是( a[1][3] )。 5.2 strlen("How are you\n")的值是( 12 )。 5.3 C 语言中字符串结束的标志是( '\0' )。 5.4 写出一个名为 s 的单精度实型一维数组,长度是 6,所有元素初值均为 0,其数组定义语句是( float s[6]={0}; )。 5.5 strcmp("how","How")的值是( 32 或>0 )。 选择题 5.6 若有 int s[4]={1,2,3,4};,则 s[s[0]+2*s[2]-s[3]]的值是( D ) A.1 B.2 C.3 D.4 5.7 对数组的描述正确的是( B )。 A.数组一旦定义其大小是固定的,但数组元素的类型可以不同。 B.数组一旦定义其大小是固定的,但数组元素的类型必须相同。 C.数组一旦定义其大小是可变的,但数组元素的类型可以不同。 D.数组一旦定义其大小是可变的,但数组元素的类型必须相同。 5.8 对字符串"Boy"进行完整赋值的操作是( B )。 A.char s[3] = {'B','o','y'}; B. char s[] = "Boy";
    C.char s[3] = {"Boy"}; D.char s[3]; s="Boy";
 5.9 在 c 语言中引用数组元素时,其数组下标的数据类型允许是( C )。 A.整型常量 B.整型表达式
    C.整型常量或整型表达式 D.任何类型的表达式 5.10 对以下说明语句的正确理解是( B )。 int a[10]={6,7,8,9,10}; A.将 5 个初值依次赋给 a[1]至 a[5] B.将 5 个初值依次赋给 a[0]至 a[4] C.将 5 个初值依次赋给 a[6]至 a[10] D.因为数组长度与初值的个数不相同,所以此语句不正确 三、看程序写结果 5.11 main() {int a[3][3] = {{1,0,2}, {2,2},{0,2}}, c[3][3],i,j; for(i=0; i<3; i++) { for(j=0; j<3; j++) { c[i][j] = a[a[i][j]][a[j][i]]; printf("%5d",c[i][j]); } }
    printf("\n"); } 运行结果为: 2 2 0 0 0 2 2 0 1 5.12 当运行以下程序时,从键盘输入:Ah2MA A3ha,请写出输出结果。 main() { char s[80], c='a'; int i=0; scanf("%s",s); while(s[i++]!='\0') if(s[i] == c) s[i]=s[i]-32; else if(s[i]==c-32) s[i]=s[i]+32; puts(s); } 运行结果为:AH2Ma 四、编程题 5.13 用数组方法定义一个矩阵,求其
转置矩阵。 提示:已知 a[3][2],转置后的结果存放在 b[2][3]; 则 b[j][i]=a[i][j]; 5.15 从键盘输入 9 个不同的整数,组成三行三列的二元数组,出每一列中的最大元素,并输出其行、列 下标。 提示:已知 a[3][3],max,row,col 分别用来存放一列的最大值,行下标和列下标。 5.15 利用一个二维数组,打印出以下杨辉三角形,要求打印出 10 行。 1 1 1 1 1 1 ∶ ∶ 提示:定义一个 10 行 10 列的二维数组,并且通过两重循环对第 1 列所有元素赋值 1,主对角线
也赋值。 根据 a[i][j]=a[i-1][j]+a[i-1][j-1]求出其它元素的值。 5.16 从键盘上输入一串字符(长度小于 50 个字符),出其中最前面的一个 X 和最后面的一个 X 之间的 子串,并输出子串的长度。 提示:定义一个长度为 81 的字符数组,从左边查第一字符'X'的下标,从右边查第一个字符'X'的下标。 5.17 矩阵 A 是一个 3×3 的矩阵,B 是一个 3×2 的矩阵,编程求 C=A′B。 提示:定义一个 3X2 的数组 c[3][2],该数组的元素值由 A 数组的一行元素分别与 B 的一列元素相乘得到。 譬如:c[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]。 5.18 把 30 个学生的学号和两门课程的成绩输入到一个二维数组中,求出的每个学生的两门课程的总成绩 也放于此数组中,请按学生
总分的高低打印出成绩单(包括学号、两门课程成绩和总分)。 提示:定义一个 30 行 4 列的数组。为了先快速测试算法是否正确?可以定义一个 3 行 4 列的数组,并且 通过赋初始值,减少调试程序时反复输入数据的麻烦,算法调试成功后在加上输入数据部分。实现从高到 低打印出成绩可以通过排序(降序) ;也可以通过另外定义 1 个一维数组作为索引,再通过索引打印成绩。 5.19 不用现有的函数求计算字符串长度的程序。 提示:通过循环从前到后计算字符个数,遇到字符串结束标志'\0'结束。 1 2 3 4 5 1 3 6 10 1 4 10 1 5 1
    5.20 从键盘上输入一串字符,将其逆向显示。 提示:首先计算字符串的长度,在从右边逐一显示字符,直到下标等于 0 为止。 5.21 出一个二位数组中的鞍点的位置,即该位置上的元素在该行上最大,在该列上最小。如果有,输出 其所在的行、列号,如果没有,则输出提示信息。 提示:先出行的最大元素,根据列下标出列的最大元素。 5.22 从键盘上输入一串字符,将字符串中的所有 A 去掉后组成新的字符串,并将两字符串输出。 提示:简单的方法是通过定义两个一维数组,逐个读出原字符串的字符,如果不为'A',则存入目的数组。 当然也可以只用一个一维数组实现,通过两个下标指示来实现。
    【习题 6】 填空题 6.1 C 语言程序执行的开始处是 main 函数 。 和 执行部分 。 。 6.2 C 程序中的一个函数由两部分组成,即 声明部分
    6.3 为了保证被调用函数不返回任何值,其函数定义的类型应为 void 6.5 预处理命令#include 的作用是 文件包含 。
    6.4 若一个局部变量的存储类型是 static,则该变量的值在 程序执行完成 时被释放。 6.6 定义一个宏,功能是判断两个数是否相等,相等为 1,不等为 0。 #define EQU(a,b) (a)==(b)?1:0 标识。 6.7 变量的存储类别有 自动型 、 静态型 、 寄存器型 、和 外部类型 共 4 种,它们分别用 auto 、 static 、 register 、 extern 选择题 6.8 下述函数定义形式正确的是(C)。 A. int f(int x; int y) B. int f(int x,y) C. int f(int x, int y) D. int f(x,y: int) 6.9 关于函数参数,说法正确的是(A)。 A. 实参与其对应的形参各自占用独立的内存单元 B. 实参与其对应的形参共同占用一个内存单元 C. 只有当实参和形参同名时才占用同一个内存单元 D. 形参是虚拟的,不占用内存单元 6.10 用数组名作为函数的实参时,传递给形参的是(A)。 A. 数组的首地址 B. 数组的第 1 个元素 C. 数组中的全部元素 D. 数组的元素个数 6.11 复合语句中定义的变量的作用范围是(D)。 A. 整个源文件 B. 整个函数 C. 整个程序 D. 所定义的复合语句 6.12 一个函数的返回值由( D )确定。 A. return 语句中的表达式 B. 调用函数的类型 C. 系
统默认的类型 D. 被调用函数的类型 6.13 在一个 C 源文件中,若要定义一个只允许本源文件所有函数使用的全局变量,其他文件中不允许使 用,则该变量需要使用的存储类别是(D)。 A. auto B. register C. extern D. static 判断题 6.14 若定义的函数没有参数,则函数名后的圆括号可以省略。(′) 6.15 函数的函数体可以是空语句(?)。
    6.16 只有 main 函数才能调用其他函数。(?) 6.17return 语句中表达式的类型必须与函数定义的类型一致。(′) 6.18 函数的实参和形参可以是相同的名字。(?) 6.19 函数调用中,形参与实参的类型和个数必须保持一致。(?) 6.20 外部类型的变量只能定义一次,但可在不同地方声明多次。(?) 6.21 外部类型的变量作用范围大,编程中应多用外部变量。(′) 6.22 预处理命令行必须以#开头,且最后要用分号结尾。(′) 6.23 宏命令的处理占用编译时间,而不占用运行时间。(?) 看程序写结果 6.24
    int fun(int n) {int f=1; f = f*n*2; return(f); } main() { int i,j; fo
r(i=1; i<=5; i++) printf("%d\t", fun(i)); } 
程序运行结果:2 6.25 4 6 8 10    int x1=30, x2=40; main() {int x3=10,x4=20; sub(x3,x4); sub(x2,x1); printf("x1=%d,x2=%d,x3=%d,x4=%d", x1,x2,x3,x4); } sub(int x,int y) {int x1=x; x=y; y=x1; } 程序运行结果:x1=30,x2=40,x3=10,x4=20 6.26
    #define A 4 #define B(x) A*x/2 main() {float c, a = 4.5; c=B(a);
    printf("c=%5.1f", c); } 程序运行结果:c= 9.0 编程题 6.25 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。 两个整数由键盘输入。 提示:最大公约数可以采用“辗转相除法”,最小公倍数将两数乘积除于最大公约数。“辗转相除法”:设两个 数分别用 m,n 表示且 m>n,临时变量 t,t=m%n;m=n;n=t;直到 n 等于 0。 6.26 有 3′3 的矩阵 A 和 3′2 的矩阵 B,编制一个函数,求 C=AX′B。 提示:参照习题 5.17,A,B,C 三个数组作为函数参数。 6.27 编写一函数,使输入的一个字符串按反序存放,在主函数中输入输出字符串。 提示:一维字符数组用来存放字符串,并且将它传递到函数,在函数中通过元素值交换来完成反序存放。 6.28 编制一个函数,由参数传入一个字符串,统计此字串中字母、数字、和
其他字符的个数,在主函数中 输入字符串并显示统计结果。 提示:参照例题 6.10。 6.29 定义一个宏,实现将两个数互换,并写出程序,输入两个数作为使用参数,并显示结果。 提示:带参数宏,swap(a,b,t)…… 6.30 编写以下函数:①输入职工的姓名和职工号;②按职工号由小到大排序,姓名顺序也随之调整;③输 入一个职工号,用折半法出该职工的姓名,从主函数输入要查的职工号,输出该职工姓名。 提示:定义一个二维数组来存放职工信息;用数组名作函数的参数传递;通过“起泡算法”或“选择算法”;折 半查法先决条件是数据已经有序。 【习题 7】 1.1 语句 int a,*p=&a;的含义是什么? 答:定义整型变量 a,和整型指针变量 p,并且 p 指向变量 a。 1.2 写出下列数组元素的指针法表示。 (1)num[3] (2) data[4][2] (2) *(*(data+4)+2) 答:(1)*(num+3) (1) *(*(a+1)+2) 答:(1)a[1][2]
    1.3 写出下列数组元素的下标法表示。 (2) (*(a+3))[4] (3) *(a[2]+5)
    (2) a[3][4] (3) a[2][5]
    1.4 分析程序,写出程序输出结果。 (1) main() { int a[5]={1,
2,3,4,5}; int *p=&a[1]; printf("%d",p[2]); } 输出结果:4 (2) main() { char a[]="I love China!"; char *p=a; p=p+2; printf("%s",p); } 输出结果:love China!
    (3) main() { int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*pa)[4]=a; pa++; printf("%d",*(*(pa+1)+2)); } 输出结果:11 (4) main() { char *str[]={"zhao","qian","sun","li"}; int i; for (i=0;i<4;i++) printf("%c",str[i][0]); } 输出结果:zqsl (5) void sub(int x,int y,int *z) { *z=y-x; } main() { int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%4d,%4d,%4d\n",a,b,c); } 输出结果: -5, -12, -7 (6) #include  fun(char *s) { char *p=s; while (*p) p++; return(p-s); } main() { char *str="abcd"; int i; i=fun(str); printf("%d",i); } 输出结果:4 1.5 
定义语句 int *f(); 和 int (*f)();的含义分别是什么? 答:int *f();表示函数返回一个整型指针;int (*f)();表示 f 是函数指针,指向整型函数。 1.6 在二维数组中存放有 4 个学生,5 门课程的成绩,用指针编程实现: (1)求出每门课程的平均成绩。 (2)求每个学生的总成绩和平均成绩。 (3)在屏幕上列出各课成绩在 85 分以上的学生名单。
    (4)在屏幕上列出补考通知单。 提示:(1)(2)(3)略,(4)根据成绩小于 60 分,由于有 5 门课程的成绩,所以需要使用 else if 结构。 1.7 输入一个字符串,内有数字和非数字字符,例如: a345dsaf412 x?371+89tah74 编程将其中连续的数字作为一个证书,一次存放到一个数组 d 中,例如:345 放在 d[0],412 放在 d[1],…… 统计共有多少个证书,并输出这些整数。 提示:从字符串中提取"345":t=ch-'0';t=t*10+(ch-'0');t=t*10+(ch-'0'); t='3'-'0'=3;t=3*10+('4'-'0')=34;t=34*10+('5'-'0')=345 1.8 编写把十六进制数字字符串变换成整数的函数: int htoi(char *s)。 提示:同 1.7 1.9 编写把十进制整数变换成二进制数字字符串的函数: char *itob(int n)。 提示:同 1.7 1.10 用字符指针实现字符串拷贝功能,不能使用库函数。 提示:定义两个字符数组 a,b,复制操作 b[i]=a[i]; 1.11 用字符

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。