中午好 ,今天是: 2024年11月22日
|
|
|
|
|
|
 
单元练习
第1章 C语言程序设计基本知识
第2章 算法及其描述
第3章 数据类型及表达式
第4章 结构化程序设计
第5章 数组
第6章 函数与预处理
第7章 指针
第8章 结构体、共用体和枚举类型
第9章 位运算
第10章 文件
模拟测试
模拟测试一
模拟测试二
模拟测试三
第3章 数据类型及表达式
发布人:
陈裕雄
一、 选择题
1.关于C语言数据类型的叙述,正确的是(   )。
 A. 枚举类型不是基本类型  B. 数组不是构造类型 
 C. 变量必须先定义后使用  D. 不允许使用空类型 

2.对于C语言源程序,以下叙述错误的是(  )。
 A. 可以有空语句
 B. 函数之间是平等的,在一个函数内部不能定义其他函数
 C. 程序调试时如果没有提示错误,就能得到正确结果
 D. 注释可以出现在语句的前面 

3.下面关于C语言用户标识符的描述,正确的是(   )。
 A. 不区分大小写            B. 用户标识符不能描述常量
 C. 类型名也是用户标识符    D. 用户标识符可以作为变量名 

4. 以下(    )是正确的变量名。
 A. 5f       B. if       C. f.5       D. _f5 

5.以下(  )是正确的常量。
 A. E-5     B. 1E5.1     C. 'a12'     D. 32766L 

6.以下(    )是正确的变量名。
 A. a.bee     B. -p11     C. int     D. p_11 

7.以下(   )是正确的字符常量。
 A. "c"     B. '\\''     C. 'W'     D. "\32a" 

8.以下(  )是不正确的字符串常量。
 A. 'abc'     B. "12'12"     C. "0"     D. " " 

9.以下(    )是错误的整型常量。
 A. -0xcdf     B. 018     C. 0xe     D. 011 

10.以下(   )是正确的浮点数。
 A. e3     B. .62     C. 2e4.5     D. 123 

11.若有说明语句:char c='\95'; 则变量c包含(   )个字符。
 A. 1     B. 2     C. 3     D. 语法错误 

12.若有定义:int a=2; 则正确的赋值表达式是(  )。
 A. a-=(a*3)     B. double(-a)     C. a*3     D. a*4=3 

13.语句x=(a=3,b=++a);运行后,x、a、b的值依次为(  )。
 A. 3,3,4     B. 4,4,3     C. 4,4,4     D. 3,4,3 

14.语句a=(3/4)+3%2;运行后,a的值为(   )。
 A. 0     B. 1     C. 2     D. 3 

15.char型变量存放的是(    )。
 A. ASCII代码值     B. 字符本身     C. 十进制代码值     D. 十六进制代码值 

16.若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为(    )。
 A. 3,3     B. 4,4     C. 4,3     D. 3,4 

17.若有定义:int a; 则语句a=(3*4)+ 2%3;运行后,a的值为(   )。
 A. 12     B. 14     C. 11     D. 17 

18.若有定义:int a,b; double x;则以下不符合C语言语法的表达式是(   )。
 A. x%(-3)     B. a+=-2     C. a=b=2     D. x=a+b 

19.若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是(     )。
 A. x=x*3=2     B. x=(y==1)     C. i=float(x)     D. i%(-3) 

20.设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式是(    )。
 A. a/b/c*e*3     B. 3*a*e/b/c     C. 3*a*e/b*c     D. a*e/c/b*3 

二、填空题
1.设a为short型变量,描述“a是奇数”的表达式是(    )。
2.若有定义:int a=5,b=2,c=1;则表达式a-b<c||b= =c的值是(    )。
3.已知char c=’A’;int i=1;j=0;执行语句j=!c&&i++后,i和j的值分别是(    )和(    )。
4.若有定义:float x=3.5;int z=8;则表达式 x+z%3/4 的值为(    )。
5.若有定义:int a=1,b=2,c=3,d=4,x=5,y=6;则表达式 (x=a>b)&&(y=c>d) 的值为(    )。
6.若有定义:int a=2,b=3; float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是(    )。
7. 若有定义:int b=7; float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是(    )。

三、程序设计题
1.已知圆的半径r=2.5,圆柱高h=1.8,求圆周长,圆柱体积。

2.要将“China”译成密码,译码规律是:用原来字母后面的第4个字母代替原来的字母。例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre”。请编写1程序,用赋初值的方法使c1、c2、c3、c4、c5 五个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,使c1、c2、c3、c4、c5分别变为‘G’、‘l’、‘m’、‘r’、‘e’并输出。
(1)输入事先已编好的程序,并运行该程序,分析是否符合要求。
(2)改变c1、c2、c3、c4、c5、的初值为:‘T’、‘o’、‘d’、‘a’、‘y’,对译码规律作如下补充:‘W’用‘A’ 代替,‘X’用‘B’代替,‘Y’用‘C’代替,‘Z’用‘D’代替。修改程序并运行。
(3)将译码规律修改为:将字母用它前面的第4个字母代替,例如:‘E’用‘A’ 代替,‘Z’用‘V’代替,‘D’用‘Z’代替,‘C’用‘Y’代替,‘B’用‘X’代替,‘A’用‘W’代替。修改程序并运行。

3.输入秒数,将它按小时、分钟、秒的形式来输出。例如输入24680 秒,则输出6小时51分20秒。
答案:
1、选择题
(1)C      (2)C    (3)D     (4)D     (5)D
(6)D      (7)C    (8)A     (9)B     (10)B
(11)A     (12)A   (13)C    (14)B    (15)A
(16)C     (17)B   (18) A   (19)B    (20)C

2、填空题
(1) a%2!=0 或a%2==1
(2) 0
(3) 1,0
(4) 3.5
(5) 0
(6) 3.5
(7) 4.5

3、程序设计题
(1):
#include <stdio.h>
main() 

    float r=0,h=0,l=0,v=0,pi=0; 
    pi=3.1415926; 
    printf("请输入圆半径及圆柱的高,用逗号分隔:");
    scanf("%f,%f",&r,&h); 
    l=2*pi*r; 
    v=pi*r*r*h; 
    printf("圆周长为:%6.2f \n",l); 
    printf("%圆柱体积为:%6.2f\n",v); 
}

(2):
#include<stdio.h>
main()
{
   char c1='C',c2='h',c3='i',c4='n',c5='a';
   printf("原字符为:%c%c%c%c%c\n",c1,c2,c3,c4,c5);
   c1+=4;
   c2+=4;
   c3+=4;
   c4+=4;
   c5+=4;
   printf("加密后的字符为:%c%c%c%c%c\n",c1,c2,c3,c4,c5);
   c1='T',c2='o',c3='d',c4='a',c5='y';
   printf("题目(2)原字符为:%c%c%c%c%c\n",c1,c2,c3,c4,c5);
   /*c1='w',c2='x',c3='y',c4='z',c5='w';*/
   c1-=22;
   c2-=22;
   c3-=22;
   c4-=22;
   c5-=22;
   printf("题目(2)加密后的字符为:%c%c%c%c%c\n",c1,c2,c3,c4,c5);
   printf("题目(3)原字符为:%c%c%c%c%c\n",c1,c2,c3,c4,c5);
   c1-=4;
   c2-=4;
   c3-=4;
   c4-=4;
   c5-=4;
   printf("题目(3)加密后的字符为:%c%c%c%c%c\n",c1,c2,c3,c4,c5);

}

(3):
#include<stdio.h>
main()
{
   long x=0;
   int h=0,m=0,s=0;
   printf("请输入秒数,为一个正整数:");
   scanf("%d",&x);
   h=x/3600;
   m=x%3600/60;
   s=x%3600%60;
   printf("你输入的秒数为 %d小时%d分%d秒\n",h,m,s);
}
 

Copyright©2012,All Rights Reserved
版权所有:广东南方职业学院计算机系 设计:陈裕雄