C语言程序设计上机实习答案 下载本文

内容发布更新时间 : 2024/5/18 22:40:27星期一 下面是文章的全部内容请认真阅读。

要求不使用第三个变量作为临时变量,可利用异或(^)运算或用如下算法实现:

提示:

a=a-b; b=a+b; a=b-a;

#include #include

int main() {

char a; char b;

scanf(\ a=a-b; b=a+b; a=b-a;

printf(\

return 0; } 4.

标题: 4、数据类型 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms 描述:

编写一个程序计算你所使用的编译系统和计算机系统的char,int,long,float,double类型所占用的字节数,并分别输出显示。

输入: 无

输出: char,int,long,float,double类型所占用的字节数。 输入样例: 无 1 4 4

输出样例: 4

8

提示: 用sizeof运算符求字节数,比如sizeof(char)就是char型变量在内存

11

中所占数据的字节数。

#include #include

int main() {

int c,i,l,f,d; c=sizeof(char); i=sizeof(int); l=sizeof(long); f=sizeof(float); d=sizeof(double);

printf(\ return 0; } 5.

标题: 5、进制转换(一) 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

描述: 编制程序,将十六进制数转换为十进制数。如转换不成功,则输出0。 输入: 一个十六进制数。 输出: 对应的十进制整数。 输入样例: 0x4E

78

输出样例:

提示: 提示:十六进制以0x或0X开头,十六进制允许的符号有0~9,A~F,a~f。

#include

#include

int main() {

int a;

scanf(\ printf(\ return 0; }

12

6.

标题: 6、菜单程序设计 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

编制一个菜单程序Menu(),利用switch语句完成菜单的选择,当输入'A'

描述: 时,输出“FunA”,当输入'B'时,输出“FunB”,当输入C时,输出

“FunC”,当输入其他字符时返回-1,输出“-1”,结束程序。 输入: 菜单选择字符。 输出: 相应函数的输出内容。 输入样例: A 输出样例: FunA #include #include

int Menu(); int main() {

int c;

while((c=getchar())!=EOF) {

switch (c) {

case 'A':

printf(\ break; case 'B':

printf(\ break; case 'C':

printf(\ break;

default:

printf(\ break; }

return 0; } }

13

7.

标题: 7、字符串转化为整数程序 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

描述: 编制程序实现将一个数字字符串转化为整数。 输入: 一个数字字符串。 输出: 对应整数。 输入样例: 1234 输出样例: 1234

提示: 要求用函数int Atoi(char str[])实现。

#include #include

int Atoi(char str[]); int main() {

char str[80]; int i=0;

for(i=0;i<80;i++) {

str[i]=0; }

scanf(\ printf(\

return 0; } 8.

标题: 8、进制转换(二) 时 限: 1000 ms 内存限制: 10000 K 总时限: 3000 ms

编制程序实现void Itob(int n,char s[],int b),将整数n转换为b进

描述: 制的表示形式,并存入字符数组s中。比如:Itob(n,s,16),s就是n的

十六进制编码字符串。 输入: 整数n和要转换为进制。 输出: b进制编码字符串。

14

输入样例: 45 16 输出样例: 2D #include #include

void Reverse(int n,char s[],int b); char ch[100]; int main() {

char s[100]; int n,b;

scanf(\ Reverse(n,s,b); printf(\ return 0; }

void Reverse(int n,char s[],int b) {

int i; int j=0; int k=0;

for (i=0;n>0;i++) {

j=n%b; if(j>9) {

s[i]=j+'A'-10; } else {

s[i]=j+'0'; }

n=n/b; } i=i-1;

while (i>=0) {

ch[k]=s[i]; k++; i--; }

ch[k]='\\0'; }

15