您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页实验一 表达式和标准输入与输出实验

实验一 表达式和标准输入与输出实验

来源:尚车旅游网
 C语言程序设计 实验报告

专业 信息安全 班级 1103 日期 成绩 实验组别 第 1次实验 指导教师 学生姓名 严志颖 学号 U201114113 同组人姓名

实验名称 表达式和标准输入与输出实验

一、实验目的

1.熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类型及运算过程中的类型转换,重点是C语言特有的运算符,例如位运算符,问号运算符,逗号运算符等;熟记运算符的优先级和结合性;

2.掌握getchar, putchar, scanf 和printf 函数的用法。 3.掌握简单C程序(顺序结构程序)的编写方法。 二、实验任务 1、源程序改错题

下面给出了一个简单C语言程序例程,用来完成以下工作: 1.输入华氏温度f,将它转换成摄氏温度c后输出; 2.输入圆的半径值r,计算并输出圆的面积s;

3.输入短整数k、p,将k的高字节作为结果的低字节,p的高字节作为结果的高字节,拼成一个新的整数,然后输出;

在这个例子程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。

#include #define PI 3.14159; voidmain( void ) {

int f ;

short p, k ; double c , r , s ;

/* for task 1 */

printf(“Input Fahrenheit:” ) ; scanf(“%d”, f ) ; c = 5/9*(f-32) ;

printf( “ \\n %d (F) = %.2f (C)\\n\\n ”, f, c ) ;

/* for task 2 */

printf(\"input the radius r:\"); scanf(\"%f\s = PI * r * r;

printf(\"\\nThe acreage is %.2f\\n\\n\

/* for task 3 */

printf(\"input hex int k, p :\"); scanf(\"%x %x\

newint = (p&0xff00)|(k&0xff00)<<8; printf(\"new int = %x\\n\\n\

}

2、源程序修改替换题

下面的程序利用常用的中间变量法实现两数交换,请改用不用第三个变量的交换法实现。 #include void main( ) {

int a, b, t;

printf(“Input two integers:”); scanf(“%d %d”,&a,&b); t=a, a=b, b=t;

prinf(“\\na=%d,b=%d”,a,b); }

3、编程设计题

上机调试运行以下程序:

(1)编写一个程序,输入字符c,如果c是大写字母,则将c转换成对应的小写,否则c的值不变,最后输出c。

(2)编写一个程序,输入无符号短整数x,m,n(0 ≤m≤ 15, 1 ≤ n≤ 16-m),取出x从第m位开始向左的n位(m从右至左编号为0~15),并使其向左端(第15位)靠齐。 (3)IP地址通常是4个用句点分隔的小整数,如32.55.1.102。这些地址在机器中用无符号长整形表示。编写一个程序,以机器存储的形式读入一个32位的互联网IP地址,对其译码,然后用常见的句点分隔的4部分的形式输出。 三、实验步骤及结果 1. 源程序改错题

原程序中的错误:

(1).voidmain 中间缺少空格; (2).printf函数调用有误,汉语中的双引号改为英语中的双引号,“%.2f”改为“%.2lf”; (3).scanf函数调用有误;“f”改为“&f”同时,汉语中的双引号改为英语中的双引号,“%f”改为“%lf”。

(4).“c“为double型,5改为5.0;newint = (p&0xff00)|(k&0xff00)<<8改为newint = (p&0xff00)|(k&0xff00)>>8;int型newint的说明缺少,输出时printf中应用“%d”; (5).k,p为short型输入时用“%h”; 修改后的程序: #include #define PI 3.14159; int main( void ) {

int f,newint ; short p, k ;

double c , r , s ;

/* for task 1 */

printf(\"Input Fahrenheit:\" ) ; scanf(\"%d\ c = 5.0/9*(f-32) ;

printf(\"\\n %d (F) = %.2f (C)\\n\\n \

/* for task 2 */

printf(\"input the radius r:\"); scanf(\"%lf\s= PI * r * r;

printf(\"\\nThe acreage is %.2lf\\n\\n\

/* for task 3 */

printf(\"input hex int k, p :\"); scanf(\"%h %h\

newint = (p&0xff00)|(k&0xff00)>>8; printf(\"new int = %d\\n\\n\ }

运行结果:

2、源程序修改替换题 替换后程序:

#include int main( ) {

int a, b;

printf(\"Input two integers a,b:\"); scanf(\"%d %d\ a=a+b; b=a-b; a=a-b;

printf(\"\\na=%d,b=%d\ return 0; }

运行结果:

3、编程设计题

1,调试后的正确程序: #include int main(void) {

int x ;

printf(\"Please input one char:\"); x=getchar();

if(x>='A'&&x<='Z') {

x=x+32; putchar(x); } else

putchar(x); return 0; }

运行结果:

2调试后的正确程序: #include int main(void) {

unsigned short int x,m,n,result; printf(\"Please input x,m,n:\\n\"); scanf(\"%hu%hu%hu\ result=(x>>m)<<(15-n+1); printf(\"%hu\ return 0; }

运行结果:

3 调试后程序: #include #define A 0Xff000000 #define B 0X00ff0000 #define C 0X0000ff00 #define D 0X000000ff int main() {

unsigned long int x; int a,b,c,d;

printf(\"Please input x:\"); scanf(\"%lu\ a=(x&A)>>24; b=(x&B)>>16; c=(x&C)>>8; d=(x&D);

printf(\"%d.%d.%d.%d\}

运行结果:

四、实验体会

C语言的学习需要平时多多练习;在编写程序时经常忘记一些基本格式,或者把优先级搞错,有时候还把声明忘了,需要多多留心一些细节。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务