(C语言)实验六 数据类型与表达式

【实验目的】

1、熟练掌握C语言的数据类型,掌握如何定义整型、字符型和实型变量以及对它们的赋值与引用。
2、熟练掌握数据的输入输出方法,正确使用各种格式转换符。
3、掌握数据类型的转换;掌握C的各类运算符的使用,特别是自增和自减运算符的使用;掌握各种表达式求值。

【实验要求】

1、实验共5题,每题20分,共100分;
2、实验需在截至日期前提交超星平台(提交内容有程序源代码、程序截图、 结果截图三部分,并请标清楚题号。),由同学互改评分,补交不评分;
3、学生对实验分数有异议,提交申请,带教老师修正得分;
4、原则上学生需独立完成实验题,个别难题可互相讨论或查阅资料;
5、若对试验题有疑问,且仔细阅读测试用例,可咨询带教老师。

【实验内容】

1、表达式求值(1202)
2、两电阻并联求阻值(1203)
3、数列中俩数之差最大(1207)
4、简单字符加密(1204)
5、数学竞赛名次预测(1209)

【题目1】
【填空题】表达式求值
【题目ID】1202
【问题描述】
以下算术表达式求值(如果值是整数,请填写一个整数;如果值是小数,请精确到小数点后两位)。
(1)表达式3.5+1/2+56%10的值是( )。
(2)设a=2,表达式(a++1/3)的值是( )。
(3)设x=2.5,a=7,y=4.7,表达式x+a%3
(int)(x+y)%2/4的值是( )。
(4)设a=2, b=3, x=3.5, y=2.5,表达式 (float)(a+b)/2+(int)x%(int)y的值是( )。
(5)设x=3,y=4 表达式x=(x=++y,x+5,x/5)的值是( )。
(6)设x=4,y=3,表达式(x>y>=2)?1:0的值是( )。
(7)设a=5,b=6,表达式(++ab–)?++a:–b的值是( )。
以下逻辑表达式求值(请填写0或1)
设a=3,b=4,c=5 ,求(7)至(14)表达式的值
(8)b>c&&b
c ( )
(9)!(a>b)&&!c||1 ( )
(10)!(a=c)&&(b-c)&&0 ( )
(11)!(a+b)+c-1&&b+c/2 ( )
(12)a||(b+b)&&(c-a) ( )
(13)(!a1)&&(!b0) ( )
(14)a&&(b||c) ( )
以下复合算术赋值(请填写整数)
设a=12,分别执行(15)至(20)代码后,求a的值
(15)a+=a ( )
(16)a*=2+3 ( )
(17)a/=a+a ( )
(18)a>>=2 ( )
(19)a+=a-=a*=a ( )
(20)a<<=a-=8 ( )

【题目2】
【编程题】两电阻并联求阻值
【题目ID】1203
【问题描述】
两电阻并列连接在电路中成为并联电阻。总电阻值的计算公式为:1/R总=1/R1+1/R2。
【输入输出】
输入:一行2个数,用空格进行分割,分别代表电阻R1和R2。
输出:一行一个数,代表的是并联电阻的总阻值,精确到小数点后2位。
【样例说明】
(C语言)实验六 数据类型与表达式_第1张图片
(C语言)实验六 数据类型与表达式_第2张图片

【测试用例】
【用例1】
输入:
2 3
输出:
1.20

【用例2】
输入:
17.66 28.33
输出:
10.88

【用例3】
输入:
33 99
输出:
24.75

【用例4】
输入:
1 8
输出:
0.89
【用例5】
输入:
0 3
输出:
0.00

【题目3】
【编程题】数列中俩数之差最大
【题目ID】1207
【问题描述】
一个包含n(2<=n<=50)个实数的数列,从中找2个数,使得这两个数的差是最大的。
问题分析:算式a-b,要使得值最大,那么,要求被减数a最大,减数b最小,从而使得a-b最大。从数列中,找出最大的数,存入max变量;找出最小的数,存入min变量。显然,max-min的值是最大的。
【输入输出】
输入:两行,第一行一个正整数,表示数列中的实数个数n;
第二行,n个数,表示数列的n个实数;
输出:一行一个数,表示数列的最大差值(保留2位小数)。
【样例说明】
(C语言)实验六 数据类型与表达式_第3张图片
(C语言)实验六 数据类型与表达式_第4张图片
(C语言)实验六 数据类型与表达式_第5张图片

【测试用例】
【用例1】
输入:
5
33 333 3333 -33333 -333333
输出:
336666.00

【用例2】
输入:
2
1 5
输出:
4.00

【用例3】
输入:
7
1 3 5 7 9 1 4
输出:
8.00

【用例4】
输入:
10
1 2 3 4 5 9 8 7 6 5
输出:
8.00

【用例5】
输入:
5
-1 -2.08 -3.09 -4.06 0.0
输出:
4.06

【题目4】
【编程题】简单字符加密
【题目ID】1204
【问题描述】
输入一行字符(不多于60个字符,以回车结束),将其加密。
加密规则:1)将小写字母转换为相应的大写字母;2)将大写字母转换为相应的小写字母;3)非字母字符不变;4)字母顺序后延3个字符,且x->a,y->b,z->c;5)数字字符顺序后延5个符号。
【输入输出】
输入:一行字符(不多于60个字符,以回车结束)
输出:一行字符,为加密后的字符。
【样例说明】
(C语言)实验六 数据类型与表达式_第6张图片
(C语言)实验六 数据类型与表达式_第7张图片
(C语言)实验六 数据类型与表达式_第8张图片

【测试用例】
【用例1】
输入:
f iLSB vLR!
输出:
I Love You!

【用例2】
输入:
vLR XOB X ILSBIV DFOI.
输出:
You are a lovely girl.

【用例3】
输入:
6255056556
输出:
1700501001

【用例4】
输入:
abcABC 012 xyzXYZ 789
输出:
DEFdef 567 ABCabc 234

【用例5】
输入:
!@#KaTeX parse error: Expected 'EOF', got '#' at position 24: …DFG12345 输出: !@#̲%TZHUWdvgij67890

【题目5】
【编程题】数学竞赛名次预测
【题目ID】1209
【问题描述】
甲、乙、丙、丁四人参加一次数学竞赛。赛后,他们四人预测名次的谈话如下:
甲说:“丙得第一,我第三名”;
乙说:“我第一名,丁第四名”
丙说:“丁第二名,我第三名”
丁没说话。
当最后结果公布时,甲乙丙都只说对了一半,请给出正确的4人名次(没有并列名次)。
解题思路:
甲的名次是1,2,3,4中的一种,同理,乙,丙,丁也是如此。这样,可以用一个4重循环,把甲乙丙丁四人的名次做枚举。
不妨设甲乙丙丁的名次分别为a,b,c,d
“丙得第一,我第三名”;c1 && a3
都只说对了一半,则可表述为:(c1)&&!(a3) || !(c1)&&(a3)
名次互不相同,a!=b && a!=c && a!=d && b!=c && b!=d && c!=d
(C语言)实验六 数据类型与表达式_第9张图片

【测试用例】
【用例1】
输入:
输出:
abcd
3142

你可能感兴趣的:(笔记,C语言实验)