《C语言程序设计》教材习题参考答案

Similar documents
《C语言程序设计》教材习题参考答案

《C语言程序设计》第2版教材习题参考答案

没有幻灯片标题

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

《计算概论》课程 第十九讲 C 程序设计语言应用

untitled

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

新版 明解C言語入門編

新・明解C言語入門編『索引』

网C试题(08上).doc

( ) / ISBN /D ( )

经典案例(三)

《C语言程序设计》教材习题参考答案

期中考试试题讲解

《C语言程序设计》教材习题参考答案

技能竞赛C试题

新・解きながら学ぶC言語

untitled

untitled

_汪_文前新ok[3.1].doc

名人养生.doc

常见病防治(二).doc

警界风采录(六).DOC

C C

树木(一)

untitled

untitled

树木(二)

朝鲜、韩国(四)

《C语言程序设计》第2版教材习题参考答案

C++ 程式設計

Ps22Pdf

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

untitled

[改訂新版]C言語による標準アルゴリズム事典

nooog

C/C++ - 文件IO

游戏攻略大全(五十二).doc

游戏攻略大全(五十一).doc

¨Æ·~½g¡ã¾·~¤ÀÃþ

% 25% (i) 95% 96,290,900 (ii) 99.9% 17,196,000 (iii) 99.9% 89,663,100 2

Microsoft Word - om388-rnt _excl Items 16 & 38_ _final_for uploading_.doc

國立中山大學學位論文典藏.PDF

Microsoft Word mpc-min-chi.doc

( ) 1

穨cwht.PDF

900502_Oasis.indb

bnb.PDF

untitled

Microsoft Word _4

郑州大学(下).doc

厨房小知识(六)

广 东 纺 织 职 业 技 术 学 院 发 展 党 员 公 示 制 实 施 办 法 关 于 推 荐 优 秀 团 员 作 为 党 的 发 展 对 象 工 作 的 意 见 后 勤 管 理 工 作 广 东 纺 织 职 业 技 术 学 院 新 引 进 教 职 工 周 转 房 管 理


游戏攻略大全(五十).doc

金融英语证书考试大纲


健康知识(二)

中南财经大学(二).doc

广西大学(一).doc

根据学校教学工作安排,2011年9月19日正式开课,也是我校迁址蓬莱的第一学期开学

山东大学(一).doc

2

主 编 : 杨 林 副 主 编 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 评 审 顾 问 : 杨 林 张 新 民 评 审 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 李 忆 萍 徐 如 雪 文 字 编 辑 : 曹 纯 纯 邹 兰 李 雅 清

最新文物管理执法全书(十四).doc

园林常识(二).doc

前 言 二 一 六 年 四 月 四 日, 兒 童 節, 誕 生 了 一 件 美 事 : 中 國 作 家 曹 文 軒 在 意 大 利 博 洛 尼 亞 國 際 童 書 展 榮 獲 國 際 安 徒 生 文 學 獎, 是 該 獎 創 設 六 十 年 來, 第 一 位 摘 桂 的 中 國 作 家, 意 義 重

湖 南 科 技 大 学

上海外国语大学(二).doc

2009 陳 敦 德

切 实 加 强 职 业 院 校 学 生 实 践 能 力 和 职 业 技 能 的 培 养 周 济 在 职 业 教 育 实 训 基 地 建 设 工 作 会 议 上 的 讲 话 深 化 教 育 教 学 改 革 推 进 体 制 机 制 创 新 全 面 提 高 高 等 职 业 教 育 质 量 在

鸽子(三)

兽药基础知识(四)

园林植物卷(十).doc

园林植物卷(十七).doc

临床手术应用(三)

家装知识(二十)

医疗知识小百科

家庭万事通(一)

家装知识(三)

园林绿化(一)

园林植物卷(十五).doc

最新监察执法全书(一百五十).doc

兽药基础知识(三)

奥运档案(四).doc

最新监察执法全书(五十).doc

最新执法工作手册(三百八十四)

中华美食大全4

动物杂谈_二_.doc

抗非典英雄赞歌(三)

新时期共青团工作实务全书(三十五)

经济法法律法规第十九卷

游戏攻略大全(五十九).doc

火灾安全实例

兽药基础知识(七)

实用玉米技术(二)

中国政法大学(一).doc

Transcription:

教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN: 978-7-302-13599-9, 红色封面答案制作时间 :2011 年 2 月 -5 月一 选择题 1. 以下数组定义中, 错误的是 :C)int a[3]=1,2,3,4; 2. 以下数组定义中, 正确的是 :B) int a[][2]=1,2,3,4; 3. 设有定义 int a[8][10];, 在 VC 中一个整数占用 4 字节, 设 a 的起始地址为 1000, 则 a[1][1] 的地址是 :D)1044 4. 已知有数组定义 int a[][3]=1,2,3,4,5,6,7,8,9;, 则 a[1][2] 的值是 :C)6 5. 在以下字符串定义 初始化和赋值运算中, 错误的是 :A) char str[10];str= String ; 6. 设有以下字符串定义, char s1[]= S, t, r, i, n, g ; char s2[]= String ; 则 s1 和 s2:c) 长度不同, 但内容相同 7. 设有定义 int a[10]=0;, 则说法正确的是 :A) 数组 a 有 10 个元素, 各元素的值为 0. 8. 设已定义 char str[6]= a, b, \0, c, d, \0 ;, 执行语句 printf( %s,str) 后, 输出结果为 :B)ab 9. 引用数组元素时, 数组元素下标不可以是 :C) 字符串 10. 已定义字符串 S1 和 S2, 以下错误的输入语句是 :C)gets(s1,s2); 11. 下面程序段的运行结果是 :A)123 void char a[]= abcd,b[]= 123 ; strcpy(a,b); printf( %s\n,a); 12. 下面程序段的运行结果是 :A)123 void char a[]= 123,b[]= abcd ; if(a>b)printf( %s\n,a); else printf( %s\n,b); 二 编程题 1. 一维数字 a 的值已经, 请把数组中的值按逆序存放, 然后输出数组 例如数组中原来的值为 3, 4,2,1,6, 颠倒后变成 6,1,2,4,3. int i,a[5]=2,3,45,12,5,t; printf(" 转换前 :"); for(i=0;i<5;i++) printf("%d\t",a[i]); for(i=0;i<5/2;i++) t=a[i]; a[i]=a[5-i-1]; a[5-i-1]=t; 答案整理 : 林子雨 http://www.cs.xmu.edu.cn/linziyu 第 1 页 / 共 7 页

printf("\n 转换后 :"); for(i=0;i<5;i++) printf("%d\t",a[i]); 2. 输入一个整数 ( 位数不确定 ), 从高位到低位依次输出各位数字, 其间用逗号分隔 例如输入整数为 2345, 则输出应为 2,3,4,5 int a[10],x,i; printf(" 输入一个整数 :"); scanf("%d",&x); for(i=0;x>0;i++) a[i]=x%10; x/=10; for(i--;i>=0;i--) printf("%d,",a[i]); printf("\b "); 3. 若某数的平方具有对称性质, 则称该数为回文数 例如 11 的平方 121, 则称 11 为回文数 请找出 1~999 中的所有回文数 int x,i,j,a[10],wei,p; for(i=1;i<1000;i++) p=1; x=i*i; for(j=0;x>0;j++) a[j]=x%10; x/=10; wei=j; for(j--;j>=0;j--) if(a[j]!=a[wei-1-j]) p=0; break; if(p==1) printf("%d\t",i); 答案整理 : 林子雨 http://www.cs.xmu.edu.cn/linziyu 第 2 页 / 共 7 页

4. 用选择排序法对整形数字排序 #include <stdio.h> #include <stdlib.h> void selectsort(int a[],int n) int i,j,k,num; for(i=0;i<n-1;i++) /* 外部循环实现选择排序 */ k=i; for(j=i+1;j<n;j++) /* 内部循环得到最小数 */ if(a[j]<a[k]) k=j; if(k!=i) num = a[k]; /* 交换排序最小数 */ a[k]=a[i]; a[i]=num; printf("\n\nthe sorted numbers are:\n"); for(i=0;i<n;i++) printf("%5d",a[i]); /* 显示排序的数字 */ int int i,a[20]; srand((unsigned)time(null)); for(i=0;i<20;i++) a[i]=rand()%100; /* 利用随机数给数组赋值 */ printf("the original orders are:\n"); for(i=0;i<20;i++) printf("%5d",a[i]); selectsort(a,20); /* 数组名作为函数的参数, 地址传递 */ getch(); 5. 文本加密 输入一字符串, 将其中所有的大写英文字母 +3, 小写字母 -3, 然后在输出加密后该句子的长度 #include<string.h> int i; char a[100]; puts(" 输入文本 :"); 答案整理 : 林子雨 http://www.cs.xmu.edu.cn/linziyu 第 3 页 / 共 7 页

gets(a); for(i=0;i<strlen(a);i++) if(a[i]<='z'&&a[i]>='a') a[i]+=3; else if(a[i]<='z'&&a[i]>='a') a[i]-=3; puts(" 加密后 :"); puts(a); 6. 输入一字符串, 统计出某自定字符在字符串中出现的次数 #include<string.h> char x,a[100],c=0; int i; puts(" 输入一串字符 :"); gets(a); puts(" 查哪个字符个数?"); x=getchar(); for(i=0;i<strlen(a);i++) if(a[i]==x) c++; printf(" 共 %d 个 ",c); 7. 输入一个英文句子, 如果两个单词之间对于一个空格, 则删除多余的空格 然后输出处理前后该句子的长度 char c[200]=0; int i=0, NUM=0; printf(" 请输入一段英文 :\n"); do i++; scanf("%c",&c[i]); if(' '==c[i]&&(' '==c[i-1] '\0'==c[i-1])) NUM++; c[i]='\0'; // 删除空格 答案整理 : 林子雨 http://www.cs.xmu.edu.cn/linziyu 第 4 页 / 共 7 页

while(10!=c[i]); printf(" 之前长度为 %d, 之后长度为 %d\n",i,i-num); 8. 不要调用 strcpy 函数, 把字符数组 str2 中的字符串复制到字符数组 str1 中 char str1[201]; char str2[101]; printf(" 请输入两个字符串 ( 长度不超过 100)\n"); scanf("%s%s",str1,str2); int i,j; for(i=0;str1[i]!='\0';i++) for(j=0;str2[j]!='\0';j++) str1[i++]=str2[j]; str1[i]='\0'; printf(" 复制操作之后 str1 为 :\n"); printf("%s",str1); 9. 输入一个 5*5 的整数矩阵, 计算对角线以上所有元素之和 int a[5][5]; for(int i=0;i<5;i++) scanf("%d %d %d %d %d",&a[i][0],&a[i][1],&a[i][2],&a[i][3],&a[i][4]); int s=0; for(int i=0;i<5;i++) s+=a[i][i]+a[i][4-i]; printf("s:%d\n",s); return EXIT_SUCCESS; 答案整理 : 林子雨 http://www.cs.xmu.edu.cn/linziyu 第 5 页 / 共 7 页

10. 找出二维数组的所有鞍点 所谓鞍点就是在该位置上的元素在该行上最大, 在该列上最小 数组元素由随机函数自动产生 #include <stdio.h> #include <stdlib.h> #include <time.h> int array[100][100]; while(1) srand((unsigned)time(null)); int x,y; printf(" 输入二维数组的长宽 ( 不超过 100)\n"); scanf("%d%d",&x,&y); //int array[4][4]=11,1,23,45,40,56,98,91,23,21,12,40,45,67,23,90; int i,number=0,sign,j,m,n; for(i=0;i<x;i++) for(j=0;j<y;j++) array[i][j]=rand()%100; printf(" 数组是 :\n"); for (i = 0;i <x;i++) for (j = 0; j< y;j++) printf("%10d",array[i][j]); printf("\n"); printf("\n"); for (i = 0; i < x; i++) m = i; n = 0; sign = 1; for(j = 0; j < y;j++) if (array[m][n] < array[i][j]) n = j; for(j = 0; j < y;j++) if(array[m][n] >array[j][n]) sign = 0; if (sign == 1) number++; 答案整理 : 林子雨 http://www.cs.xmu.edu.cn/linziyu 第 6 页 / 共 7 页

printf(" 第 %d 个鞍点是 %d, 位置 :%d %d\n",number,array[m][n],m+1,n+1); if (number == 0) printf(" 没有鞍点 \n"); 11. 输入一组英文单词, 按字典顺序排序后输出 #include <stdio.h> #include <string.h> int char a[100][100],b[100],c[100],d[100]; int n,i,j; scanf("%d",&n); getchar(); for(i=0;i<n;i++) gets(a[i]); for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) strcpy(c,a[i]); strcpy(d,a[j]); strlwr(a[i]); strlwr(a[j]); if(strcmp(a[i],a[j])>0) strcpy(b,c); strcpy(c,d); strcpy(d,b); strcpy(a[i],c); strcpy(a[j],d); for(i=0;i<n;i++) puts(a[i]); system("pause"); ================ 此后无内容 =============== 答案整理 : 林子雨 http://www.cs.xmu.edu.cn/linziyu 第 7 页 / 共 7 页