文档库 最新最全的文档下载
当前位置:文档库 › 关于在case中定义变量

关于在case中定义变量

关于在case中定义变量
关于在case中定义变量

switch中case中变量定义的问题

2014年09月05日?综合?共 851字?字号小中大?评论关闭

今天写C代码时在case中定义了变量变异处错误,代码如下

#include

int main()

{

int n;

scanf("%d", &n);

switch(n){

case 0:

printf("it's 0\n");

break;

case 1:

int i = 2;

printf("it's 1, i = 2\n");

break;

}

return 0;

}

使用GCC编译出现:12:7: 错误:标号只能是语句的一部分,而声明并非语句。但是修改了一下,如下

#include

int main()

{

int n;

scanf("%d", &n);

switch(n){

case 0:

printf("it's 0\n");

break;

case 1:

{

int i = 2;

printf("it's 1, i = 2\n");

}

break;

}

return 0;

}

此时编译通过了,结果也正确。

下面是个人理解:

由于switch的几个case语句在同一个作用域(因为case 语句只是标签,它们共属于一个swtich语句块),所以如果在某个case下面声明变量的话,其他的case 语句也能看到,这样的话就可能导致错误,例如在地一段代码中的case 1后面还有个case 2的话,且case 2中使用了case 1定义的变量i的话,那么如果运行时n = 2,switch直接跳转到case2内部,这样就出现了i没有初始化的事情了(变量的声明是在编译阶段,而变量的赋值则是在运行时),如果能够运行的话,则在case 2中,i的初始值将是一个未知值。所以编译器直接避免这种事情的发生,就让其编译无法通过。

而很明显加上花括号之后,i的作用域就很明确了。

另外,switch(expression)其中expression的结果必须是整型(字符、短整、长整),case constant-expression中constant-expression必须是一个整型值,不能是任何表达式。

C语言1-5章复习题及参考答案

一.选择题 1、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。 A .-3 B.9 C.-12 D.6 2、若有定义:int a=8, b=5, c; 执行语句 c=a/b+0.4; 后,c的值为()。 A .1.4 B.1 C.2.0 D.2 3、有如下程序: void main() { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf("%d\n",sum); } 该程序的执行结果是()。 A .6 B.3 C.死循环 D.0 4、下列关于表达式的描述中,错误的是()。 A . 常量和变量都是表达式。 B. 运算符类型对应表达式的类型。 C. 每一个表达式都有自己的值。 D. 表达式必须以分号结尾。 5、C语言中,合法的长整型常数是()。 A . '\t' B.” A” C.65 D.a 6、若已定义 x 和 y为double 类型,则表达式 x=1;y=(x+3)/2 的值是()。 A .1 B.2 C.2.00000 D.2.50000 7、表达式:10!=9的值是()。 A . true B. 非零值 C.0 D.1 8、以下程序的输出结果是()。 #include void main() { printf("%d\n", NULL); } A . 不确定的 B.0 C.-1 D.1 9、请选出合法的C语言赋值语句。() A . a=b=58 B.i++; C. a=58,b=58 D. k=int(a+b); 10、假设 int b=2; 表达式(b>>2)/(b>>1)的值是()。 A .0 B.2 C.4 D.8 11、关于语句printf(“hello world\n”);,下列描述中错误的是()。 A . printf()是格式化输出函数,用于输出信息。 B. printf()括号中的内容为函数的参数。 C. printf()括号中的内容会全部输出到控制台上。 D. \n表示换行操作。 12、下列选项中,哪一项不是C语言中的位运算符()。 A .& B.|| C.~ D.^ 13、以下程序的输出结果是()。 void main()

C语言基本类型字符型(char)用法介绍

C语言基本类型:字符型(char)用法介绍 1.字符型(char)简介 字符型(char)用于储存字符(character),如英文字母或标点。严格来说,char 其实也是整数类型(integer type),因为char 类型储存的实际上是整数,而不是字符。计算机使用特定的整数编码来表示特定的字符。美国普遍使用的编码是ASCII(American Standard Code for Information Interchange 美国信息交换标准编码)。例如:ASCII 使用65 来代表大写字母A,因此存储字母A 实际上存储的是整数65。注意:许多IBM大型机使用另一种编码——EBCDIC(Extended Binary-Coded Decimal Interchange Code 扩充的二进制编码的十进制交换码);不同国家的计算机使用的编码可能完全不同。 ASCII 的范围是0 到127,故而7 位(bit)就足以表示全部ASCII。char 一般占用8 位内存单元,表示ASCII绰绰有余。许多系统都提供扩展ASCII(Extended ASCII),并且所需空间仍然在8 位以内。注意,不同的系统提供的扩展ASCII 的编码方式可能有所不同! 许多字符集超出了8 位所能表示的范围(例如汉字字符集),使用这种字符集作为基本字符集的系统中,char 可能是16 位的,甚至可能是32 位的。总之,C 保证char 占用空间的大小足以储存系统所用的基本字符集的编码。C 语言定义一个字节(byte)的位数为char 的位数,所以一个字节可能是16 位,也可能是32 位,而不仅仅限于8 位。 2. 声明字符型变量 字符型变量的声明方式和其它类型变量的声明方式一样: char good; char better, best; 以上代码声明了三个字符型变量:good、better,和best。 3. 字符常量与初始化 我们可以使用以下语句来初始化字符型变量: char ch = 'A'; 这个语句把ch 的值初始化为 A 的编码值。在这个语句中,'A' 是字符常量。C 语言中,使用单引号把字符引起来就构成字符常量。我们来看另外一个例子: char fail; /* 声明一个字符型变量*/ fail = 'F'; /* 正确*/ fail = "F"; /* 错!"F" 是字符串字面量*/

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

C语言练习题真答案(汇总版)

0在C语言中,合法的字符常量是(D )。 A. '字' B. "A" C."ABC" D.'\x41' 1下面叙述正确的是(B)。 A.程序中必须包含有输入语句 B.变量按所定义的类型存放数据 C.main函数必须位于文件的开头 D.每行只能写一条语句 2错误的叙述是(D)。 A.一个C语言源程序可由一个或多个函数组成 B.若一条语句较长,也可分写在下一行上 C.C程序必须包含一个main()函数 D.构成C语言源程序的基本单元是算术表达式 3(C)是关于C语言数据类型的正确叙述。 A.变量必须先定义后使用 B.不允许使用空类型 C.枚举类型不是基本类型 D.数组并不是构造类型 4 main( )函数的位置(B)。 A.必须在自定义函数前面 B.可以在自定义函数后面 C.必须位于程序的最前面 D.必须在自定义函数后面 5 C语言函数体由(C)括起来。 A. < > B. ( ) C.{ } D.[ ] 6(A)是不正确的叙述。 A.注释说明只能位于一条语句的后面 B. C源程序的基本组成单元是函数 C.C源程序可由一个或多个函数组成 D.每条语句最后必须有一个分号 7一个C语言源程序是由(B)。 A.一个主程序和若干子程序组成 B.函数组成 C.若干过程组成 D.若干子程序组成 8结构化程序设计的三种基本结构是(C)。 A.函数结构、判断结构、选择结构 B.平行结构、嵌套结构、函数结构 C.顺序结构、选择结构、循环结构 D.判断结构、嵌套结构、循环结构 9C源程序的调试是指对源程序进行(C)。 A.录入与编辑 B.查错与编译 C.查错与排错 D.连接与运行 10C语言中,可将一系列语句置于(C)从而构成复合语句。 A.一对尖括号"< >"之间 B.一对圆括号"( )"之间 C.一对花括号"{}"之间 D.一对方框号"[ ]"之间 11构成C源程序的基本单位是(D)。 A.语句 B.变量 C.运算符 D.函数 12以下叙述中正确的是(A)。 A.C源程序中注释部分可以出现在程序中任意合适的地方 B.一对花括号"{}"只能作为函数体的定界符 C.C源程序编译时注释部分的错误将被发现 D.构成C源程序的基本单位是函数,所有

c语言中字符型常量与变量使用注意事项

字符型常量与变量 (1):字符常量:一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。例如’A’‘b’等都是合法的字符常量。 注意:1、C语言区分大小写:单引号中的大小写字母代表不同的字符常量,例如’A’与’a’是不同的字符常量;2、单引号中的空格符也是一个字符常量3、字符常量只能包括一个字符,所以’ab’是非法的;4、字符常量只能用单引号括起来,不能用双引号。比如”a”不是一个字符常量而是一个字符串。 (2):转义字符常量:转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字符,这些字符常量也必须扩在一对单引号内。 字符作用 \n 换行 \t 横向跳格 \v 竖向跳格 \f 换页 \r 回车 \b 退格(Backspace) \\ 反斜杠(\) \’单引号 \”双引号

\ddd 3位八进制数 \xhh 两位十六进制数 \0 空值(ASCII码值为0) 注意:1:转义字符常量只代表一个字符,例如’\n’、’\101’; 2:反斜线后的八进制数可以不用0开头; 3:反斜线后的十六进制数只可由小写字母x开头,不能以大写字母X或0X开头。 (3):字符串常量:字符串常量是由双引号括起来的一串字符。在C 语言中,字符串是用字符型一维数组来存放的。系统在每个字符串的末尾自动加上一个字符’\0’作为字符串结束标志,’\0’在这里占用存储空间但不计入字符串的实际长度。两个连续的双引号(””)也是一个字符串常量,称为空串,占一个字节,该字节用来存放’\0’。 (4):在C语言中,字符常量可以参与任何整数运算以及关系运算。 (5)字符变量:C语言中,字符变量是用关键字char来定义的,例如:char a=’b’,字符变量在内存中占一个字节,当把一个字符放入字符变量中时,字符变量的值就是该字符的ASCII码值,所以字符变量可以作为整型变量来处理,可以参与任何整形变量的运算。

C语言习题

C语言习题 第二章 1.结构化程序由3功种基本结构组成,3种基本结构组成的算法( ) A可以完成任何复杂的任务 B只能完成部分复杂的任务 C只能完成符合结构化的任务 D只能完成一些简单的任务 2. 结构化程序由( )、()、 ()三种基本结构组成 3. C语言中结构化程序设计的3种基本结构是( ) A)顺序、选择、循环结构B) if,switch,break C)for,while, do while D)if,for,continue 第三章 1.以下选项可作为C语言合法常量的是( ) A) -80B) -080 C) –8e1.0 D) –80.0e 2. 以下4组常量中,均为合法常量的一组是( ) A –1; 12.; 011777; 0xffffff B 986,012; -16 0 8; 0; 0.0 C E3; .E5; -5e3.5; 0.35 ×102 D 01x; 0778; 0xgf; oXabc 3.以下选项中可作为C语言合法整数的是( ) A) 10110B B)0386 C) 0xffa D) x2a2 4. 以下选项中不合法的int型常量是( ) A) 32768 B) –56 C) 03 D) 0xAF 5. 以下合法的长整型常量是( ) A) 2L B) 49627 C) 34556666 D) 213& 6. 以下合法的十六进制数是( ) A) 0x B) 0x4de C) 0x1h D) ox77 7. 以下非法的数字常量是( ) A) 019B) 0L C) 0xff D) 1e1 8. 以下选项中不能作为C语言的类型、对变量进行定义的是( ) A) signed short int B) signed long int C) signed int D) long short 1.以下符合C语言语法的实型常量是( ) A) 1.2E0.5 B) 3.14159E C) .5E-3D)E15 2. 以下选项不能作为合法常量的是( ) A) 1.234e04 B) 1.234e0.4C) 1.234e+4 D) 1.234e0 3. 在TUBRO C中double型变量所占字节数是( ) A) 2 B) 4 C) 6 D) 8 1.以下选项中不是字符常量的是( )

c语言字符型常量与变量

字符型常量与变量 字符常量:一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。例如’A’‘b’等都是合法的字符常量。 注意:1、C语言区分大小写:单引号中的大小写字母代表不同的字符常量,例如’A’与’a’是不同的字符常量;2、单引号中的空格符也是一个字符常量3、字符常量只能包括一个字符,所以’ab’是非法的;4、字符常量只能用单引号括起来,不能用双引号。比如”a”不是一个字符常量而是一个字符串。 转义字符常量:转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字符,这些字符常量也必须扩在一对单引号内。 字符作用 \n 换行 \t 横向跳格 \v 竖向跳格 \f 换页 \r 回车 \b 退格(Backspace) \\ 反斜杠(\) \’单引号 \”双引号

\ddd 3位八进制数 \xhh 两位十六进制数 \0 空值(ASCII码值为0) 注意:1:转义字符常量只代表一个字符,例如’\n’、’\101’; 2:反斜线后的八进制数可以不用0开头; 3:反斜线后的十六进制数只可由小写字母x开头,不能以大写字母X或0X开头。 字符串常量:字符串常量是由双引号括起来的一串字符。在C语言中,字符串是用字符型一维数组来存放的。系统在每个字符串的末尾自动加上一个字符’\0’作为字符串结束标志,’\0’在这里占用存储空间但不计入字符串的实际长度。两个连续的双引号(””)也是一个字符串常量:称为空串,占一个字节,该字节用来存放’\0’。 在C语言中,字符常量可以参与任何整数运算以及关系运算。 字符变量:C语言中,字符变量是用关键字char来定义的,例如:char a=’b’,字符变量在内存中占一个字节,当把一个字符放入字符变量中时,字符变量的值就是该字符的ASCII码值,所以字符变量可以作为整型变量来处理,可以参与任何整形变量的运算。

第2章C语言基础知识

第二章C语言基础知识 2.1 常量和变量 【学习目标】 (1)掌握常用标识符的命名规则 (2)掌握常量和变量的定义与引用方法 实例5 常量和变量——输出常量与变量的值 【实例任务】 定义不同类型的几个变量,然后对应输出相应的常量值和变量值。程序的运行结果如图2-1所示。 图2-1 程序运行结果

【相关知识】 1.标识符 标识符是用来标识变量名、符号常量名、函数名、数组名、文件名、类名、对象名等,其基本构成元素源自字符集。C语言的字符集包括英文字母、数字字符和一些特殊字符。用这些基本元素单位命名标识符时,一定要遵循以下四个原则: (1)必须由字母(a~z,A~Z)或下画线(_)开头; (2)由字母、数字或下画线组成的长度不超过32个字符; (3)标识符中的大小写字母有区别; (4)不能与关键字同名。 下面是不合法的标识符和变量名: M.d.,John,y 123,#33,3d64 2.常量 常量是数据在内存中一种表示形式,在程序运行过程中值永远保持不变,常用的类型有5种,包括整型常量、实型常量、字符型常量、字符串常量、符号常量。 整型常量就是整型,常用的表示形式有十进制,如10、30等。八进制常量表示形式要以0开头,如013、012等。十六进制常量表示形式要以0x或0X开头,如0x13、0X12等。 实型常量就是指的是一些带小数点的数,包括指数。如3.14、-1.2、1.2e6、10.5E8等。其中,1.2e6表示数学上1.2×106,10.5E8表示数学上10.5×108。 字符型常量是单引号引起来的单个字符,这些字符为ASCII字符,对应各有其ASCII 码值。字符常量包括一些转义字符,字符形式和输出结果对照如表2-1所示。 表2-1 转义字符 字符串常量是用双引号引起来的0个或多个字符。字符串常量形式给出的是字符串在存

C语言习题册1-3章题解

程序设计技术基础(C语言)习题集题解分析 第一、二、三章 一、选择题(四个选项中只有一个是正确的----下同) 1.与十进制数97不等值的字符常量是 A) ’a’ B) ’\101’ C) ’\x61’ D) ’\141’ 题解分析:小写字母a的ASCII码是97;十六进制61转换为十进制为97;八进制141转换为十进制为97;八进制101转换为十进制为65,不等于97。 参考教材:p21 (3)字符常量;p22 转义字符表2-12,及其讲解。 2.在编写了一个C语言源程序C001.C并正确执行之后,当前目录下哪个文件不存在 A) C001.C B) C001.OBJ C) C001.DAT D) C001.EXE 题解分析:源程序C001.C经编译后生成目标文件C001.OBJ,再经过链接后生成可执行文件C001.EXE。 参考教材:p7 1.5.2 链接目标程序 3.以下选项中正确的整型常量是 A) 5.B)-10 C)1.000 D)4/5 题解分析:整型常量及整数也,实型常量及实数也。 参考教材:p19(1)整型常量,p20(2)实型常量 4.以下选项中正确的实型常量是 A) 0 B)3. 1415 C)0.03x102D).32 题解分析:0——属于整型常量;3. 1415——小数点和1415间不能分开(计算机不认);0.03x102——在C语言中要用0.03e2或0.03E2来表示。 参考教材:p20(2)实型常量 5.以下选项中不正确的实型常量是 A)2.670E-1 B)0.05e+1.5 C)-77.77 D)456e-2 题解分析: C语言在科学计数法表示实型常量时,指数部分必须是整数,不可用小数。答案B)中的0.05e+1.5表示的是0.05×101.5,指数1.5不符合要求。 6.以下选项中不合法的用户标识符是 A)wb-1 B)file C)Main D)PRINTF 题解分析:在C语言中标识符只能由字母、数字和下划线组成,A)中的“-”错了。 参考教材:p17 2.3.1 标识符 7.以下选项中不合法的用户标识符是 A)_123 B)printf C)A$ D)Dim 题解分析:参考上一题,$错了,printf是库函数名,如果不调用该函数,就可用。 注:教材有误。 8.C语言中运算对象必须是整型的运算符是 A)% B)/ C)* D)+ 参考教材:p25 第一段第二行。 9.可在C程序中用作标识符的一组标识符是 A)void B)as_b3 C)For D)2c Define _123 -abc DO

电子科大10秋学期《C语言》在线作业答案(一,二,三)

电子科大10秋学期《C语言》在线作业一 试卷总分:100 测试时间:-- 一、单选题(共35 道试题,共70 分。) V 1. C语言中用于循环结构程序设计的三种常用控制语句是( C ) A. if、for、continue B. if、switch、break C. for、while、do-while D. 顺序结构、选择结构、循环结构 满分:2 分 2. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是( A ) A. a[1][2] B. a[1] C. *(p+1*10+2) D. *(a[1]+2) 满分:2 分 3. 若有以下定义,则对a数组元素的正确引用是( C) int a[5],*p=a; A. *&a[5] B. a+2 C. *(p+5) D. *(a+2) 满分:2 分 4. 判断字符串a和b是否相等,应当使用( A) A. if(a= =b) B. if(a=b) C. if(strcpy(a,b)) D. if(!strcmp(a,b)) 满分:2 分 5. 若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为( A) A. *(a[i]+j) B. (a+i) C. *(a+j) D. a[i]+j 满分:2 分 6. 以下不正确的if语句形式是( C) A. if(x>y && x!=y); B. if(x= =y) x+=y; C. if(x != y) scanf("%d",&x ) else scanf("%d",&y); D. if(x

c语言中字符变量字符串和字符数组应用

C语言中字符变量字符串和字符数组应用 字符变量(type`char`?字符串(string)和字符数组(type`char`arrary)是C语言中非常重要的结构成分,也是应用编程中常发生混淆?导致错误发生的成分?一?注意区别字符数组中的字符和字符串C语言中无字符串变量,但提供了字符数组character arrary) 用于存储字符串,例如: char str[]="Hello"; 同时,字符数组亦用于存储字符或字符变量,例如: /*存放字符例*/ char Chars[]={`H``e`,`1``1`,`o`}; /*存放字符变量例*/ char ch=getch(); char CharVar[]=ch; str和Chars的内容尽管由相同字母构成,但前者是字符串(str)后者为一列字符(Chars)?两者在内存中的结构不同,即字符串结尾有NULL 0(字符串终止符)?在应用编程实践中,常常需要从键盘获取字符,依次存入字符数组中,再以字符串输出函数输出到屏幕等,譬如,在中文环境?图形模式下中文字符的键盘输入和屏幕显示?如混淆字符数组中字符组与字符串的差别,则可能得到奇怪的结果?如例: CharStr() { int i,CharNum=5; unsigned char str[80]; for(i=0;i

C语言复习题

判断题 1.函数若无返回值,则它一定无形参。× 2.在C 程序中, 函数既可以嵌套定义, 也可以嵌套调用。× 3.C程序总是从main( ) 函数的第一条语句开始执行的。√ 4.同一函数内可以有多个return语句。√ 5.main函数中的变量名不可以与其它函数相同。× 6.C程序可由多个函数组成,但必须有并且只有一个主函数main。√ 7.在C语言中的每个函数必须要有一个明确的return语句才能返回调用程序。× 8.主函数中定义的变量的作用域仅限于主函数内。√ 9.传值调用的形参只有在被调用时,才被创建(分配存储单元)。√ 10.C程序执行总是从第一个函数开始。× 11.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。× 12.被main函数调用的函数只能是库函数。× 13.函数说明指的是在程序中设定一个函数模块。× 14.在C程序中,若对函数类型未加说明,则函数的隐含类型为void。× 15.形参可以是常量、变量或表达式。× 16.函数调用可以作为一个函数的形参。× 17.C语言规定,实参应与其对应的形参类型一致。√ 18.定义函数时,形参的类型说明可以放在函数体内。× 19.一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。√ 20.全局变量可以被任何一个函数中的任何一个表达式使用。×因为局部变量和全局变量重 名的时候全局变量就不能使用了 21.函数的隐含存储类型是extern。√ 22.定义在main函数后的任何函数都需在main中进行函数声明。× 23.a是一维数组名,数组元素a[1]还可以写作“*(a++)”。× 24.C语言中数组名是指针常量。√ 25.构成数组的各个元素必须具有相同的类型。√ 26.数组元素的下标可以选用正整数或正实数。× 27.数组名可以作为参数进行传递。√ 28.若有定义“int a[4][5];”,则在数组元素a[3][3]前有12个元素。× 29.若有定义int a[3][4];则共有12个元素,最后一个元素是a[3][4]。× 30.字符数组中字符串可以整体输入输出。√ 31.若有定义语句“char s1[ ]="abc",s2[ ]={'a','b','c'};”,则数组s1和数组s2均有3个元 素。× 32.若a为一维数组名,则*(a+i)与a[i]等价。√ 33.函数原型为“void sort(float a[],int n)”,调用该函数时,形参数组a被创建,实参数组各 元素的值被复制到a数组各元素中。× 34.C允许对数组的大小作动态定义,即可用变量定义数组的大小。× 35.数组定义int a[10]; 也可以写成int a(10); 。× 36.在对全部数组元素赋初值时,可以不指定数组长度。√ 37.定义s为5×6(5行6列)的数组可写成float a[5,6]; × 38.数组定义int a[10]; 表示数组名为a,此数组有10个元素,第10个元素为a[10]。× 39.static char c[]={'a' ,' ','b','o','o','k','\0'};与static char c[]={'a' ,' ' ,'b','o','o','k'}; 等价。× 40.设已有说明:static char c1[10],c2[10]; 下面程序片段是合法的。c1={“book”}; c2=c1; ×

2016年C语言复习题含答案(2)

2016年C语言复习题 一、选择题 1.C语言程序的基本单位为_C____。 A) 程序行B) 语句C) 函数D) 字符 2.用C语言编写的代码程序___B___。 A)可立即执行B)是一个源程序 C)经过编译即可执行D)经过解释就能执行 3.以下叙述中正确的是___C___。 A)用C程序实现的算法必须要有输入和输出操作 B)用C程序实现的算法可以没有输出但必须要输入 C)用C程序实现的算法可以没有输入但必须要有输出 D)用C程序实现的算法可以既没有输入也没有输出 4.在一个C程序中____B__。 A) main函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main函数必须出现在所有函数之后 D) main函数必须出现在固定位置 5.以下叙述中错误的是____D___。 A)C程序中的#include和#define行均不是C语句 B)除逗号运算符外,赋值运算符的优先级最低 C)C程序中,j+=2;是赋值语句 D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算 6.以下不正确的C语言标识符是_A__。 A) int B) a_1_2 C) ab1exe D) _x 7.将空格符(AscII码值为32)赋给字符变量c,正确的赋值语句是_D___。 A) c='\0' B) c=NULL C) c=0 D) c=32 8.以下选项中,值为1的表达式___B___。 A)1-…0?B)1-…\0? C)?1?-0D)?\0?-…0? 9.设有int x=11; 则表达式(x++ * 1/3) 的值是_A____。 A) 3 B) 4 C) 11 D) 12 10.已知int x=(1,2,3,4);变量x的值是_D___。 A) 1 B) 2 C) 3 D) 4 11.如果int a=1,b=2,c=3,d=4;则条件表达式"a

字符串型变量

字符串型变量 字符串型变量 字符串型变量用于存放字符串,字符串就是一串字符,VB要求字符串要放在一对英文双引号里面,例如”hello world”和”欢迎光临”都是字符串。字符串型变量用关键字string进行定义。 字符串变量应用例子: Dim str As String ‘定义一个string类型的变量,变量名是str str = InputBox("请输入用户名") ‘输入字符串并保存到字符串型变量 str = str & "欢迎光临" Print str 提示:符号&用于连接字符串,符号&左右两边一定要有空格。语句:str&”欢迎光临”,将会报错,因为&符号左右两边没有留空格。 VB有强大的字符串处理函数,应用这些函数,你能够轻松处理字符串。VB常用字符串操作函数如下: 1. Len(X):计算字符串X的长度(也就是字符的个数) [格式]: P=Len(X) [说明]: 空字符串长度为0,空格符也算一个字符,一个中文字虽然占用2 Bytes,但也算一个字符。 [范例]: (1) Dim x as String Dim strlen as Integer

X=””‘空字符串 strlen = Len(X) print strlen’输出结果为0 (2) 令X=”abcd” strlen = Len(X) print strlen输出结果为4 (3) 令X=”VB教程” strlen = Len(X) print strlen输出结果为4 2. Mid(X)函数:截取一段字符 [格式]: P=Mid(X,n) 由字符串X的第n个字符读起,读取后面的所有字符。 P=Mid(X,n,m) 由X的第n个字符读起,读取后面的m个字符。 [范例]: (1) X=”abcdefg” P=Mid(X,5) Print p 结果为:efg (2) X=”abcdefg” P=Mid(X,2,4) Print p 结果为bcde (3) X=”abcdefg” P=Mid(X,3,1) Print p 结果为c 3. Replace: 将字符串中的某些特定字符串替换为其他字符串[格式]:

(完整版)《C语言程序设计》复习参考答案

第一章 【随堂练习1-2】 1.下面哪些标识符属于合法的用户自定义标识符: Main、void、_num、my$、a*、N4、3m、a-2 答:合法的用户自定义标识符是:Main、_num、N4 2.结合【例1.2】指出程序代码中所用到的标识符哪些是关键字,哪些是预定义标识符,哪些是用户自定义标识符。 答:关键字:void、int 预定义标识符:include、main、printf、scanf 用户自定义标识符:a、b、c 3.分析【例1.2】中函数的结构,包括函数首部(函数返回值类型、函数名、形式参数)、函数体语句(说明语句、可执行语句)。 答:函数首部:void main( ),其中函数返回值类型为void、函数名为main、形式参数无; 函数体语句:{}内的语句为函数体,其中:说明语句为int a,b,c;,其余为可执行语句。 3.标识符是用来标识程序中的某个对象名字的字符序列。C语言把标识符分为三类,即关键字、预定义标识符、用户自定义标识符。对于用户自定义标识符的命名C语言规定: (1)所有的用户标识符必须先定义后使用; (2)用户标识符由字母(A~Z,a~z)、数字(0~9)、下划线“_”组成,并且首字符不能是数字; (3)区分大小写; (4)不能用关键字作为用户自定义标识符,通常不使用预定义标识符作为用户自定义标识符。 4.理论上讲,程序开发过程分为四个步骤,分别为: (1)编辑源程序 (2)编译源程序,生成目标程序 (3)连接目标程序及其相关模块,生成可执行文件 (4)运行可执行文件

一.单元练习 一.选择题 1.构成C语言程序的基本单位是()。 A.框架B.预处理C.函数D.语句 2.在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为()。 A.编辑B.编译C.连接D.运行 3.关于主函数,下列说法不正确的是()。 A.一个完整的C语言应用程序有唯一的主函数 B.主函数的名称只能是main C.主函数可以被其他自定义函数调用 D.C语言程序的运行从主函数开始,以主函数为核心展开 4.关于标识符,下列说法不正确的是()。 A.库函数名称为预定义标识符,不建议用作用户自定义标识符 B. 关键字不能作为用户自定义标识符 C.用户自定义标识符中不区分大小写字母 D.标识符中可以出现下划线,且可以出现在标识符的任意位置 5.以下可用作用户自定义标识符的一组是()。 A.void、return、if B.printf、include、fabs C.Max、_abc、Main D.2abc、pay$、sum-10 二.填空题 1.C语言程序一般由若干个函数构成,程序中应至少包含一个_________,其名称只能为_________。 2.C语言程序中每条语句必须以_________结束。 3.C语言程序的注释是以_________开头,以________结束的,在VC++6.0编程环境中,可使用_________作为注释的起始标识,注释对程序的执行不起任何作用。 4.最初编写的C语言程序称为_________,其扩展名为_________,编译后生成的文件为_________,其扩展名是_________,连接后生成的文件是_________,其扩展名是_________。5.C语言规定,标识符只能由_________、_________和_________三种字符组成,而且,首字符只能是_________或_________。

C语言习题1

1、若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则以下程序段的执行结果是(B)。 ch='a'; k=12; printf("%x,%o,",ch,ch); printf("k=%%d\n",k); A、61,141,k=%12 B、61,141,k=%d C、因变量类型与格式描述符的类型不匹配,输出无定值 D、输出项与格式描述符个数不符,输出为零值或不定值 2.以下不符合C语言语法的赋值语句是(D)。 A、j=j+1; B、j=j=5; C、k=(2*4,k*4); D、y=float(j); 3.判断两个字符串是否相等,正确的表达方式是D A、while(s1=s2) B、while(s1= =s2) C、while(strcmp(s1,s2)=0) D、while(strcmp(s1,s2)= =0) 4.以下能正确定义数组并正确赋初值的语句是(D)。 A、int c[2][]={{1,2},{3,4}}; B、int a[1][2]={{1},{3}}; C、int N=5,b[N][N]; D、int d[3][2]={{1,2},{34}}; 5.下列语句中,不正确的是(D)。 A、static char a[2]={1,2}; B、static int a[2]={'1','2'}; C、static char a[2]={'1'}; D、static char a[2]={'1','2','3'}; 6.两个指针变量不可以(D)。 A、指向同一地址 B、比较 C、相减 D、相加 7.若以"a+"方式打开一个已存在的文件,则以下叙述正确的是(D)。 A、文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 B、其他各种说法皆不正确 C、文件打开时,原有文件内容被删除,只可作写操作 D、文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 8.以下程序的运行结果是x=123.459780。 #include main() { double x = 123.45478; x = (x* 100 + 0.5) / 100; printf("x = %f\n", x)'

整型浮点型及字符型变量的使用

实验2整型浮点型及字符型变量的使用 一.实验内容: 1、熟悉多种进制形式的整型数据的输入输出。 2、通过用整型变量存储整数的阶乘,体会整型变量的用法。 3、体会输入浮点型数据时格式字符f、e和E的作用,理解浮点型数据的精度。 4、体会单精度变量与双精度变量在使用scanf函数赋值时的差别。 5、理解字符型数据与其它数据混合输入时需注意的问题。 二.实验目的及要求: 1、掌握整型浮点型及字符型变量的使用方法。 2、能正确识别源文件中常见的错误。 三.实验重点及难点: 1、熟练掌握C语言数据类型(整型浮点型及字符型)变量的使用及对应的格式控制符。四.实验步骤: 1. 分析下面程序的输出。 #include void main( ) { short i; i = 1*2*3*4*5*6; printf("6!=%hd\n", i); 1

i = i * 7; printf("7!=%hd\n", i); i = i * 8; printf("8!=%hd\n", i); i = i * 9; printf("9!=%hd\n", i); } 程序的输出结果为: 分析: 语句i = 1*2*3*4*5*6;使变量i赋值为1到6的连乘积,即6的阶乘。语句i=i*7;执行时,先让变量i乘以7,然后乘积又存储到变量i中了,即变量i保存了7的阶乘。当用变量i保存8的阶乘时,变量i的值已经变成了负值,因为? 答:内存溢出,short为短整型,只有两个字节的内存,取值范围为-32768~32767。 1)把程序中变量i的类型变为unsigned short,程序中应怎样正确输出变量i的值?变量i能正确保存哪个整数的阶乘? 2

C选择题

计算机等级考试习题集(二级C语言) 2015年10月26日

第一部分:选择题(每题2分,20题/套,共40分) 一、概述 1.在C语言中,合法的字符常量是(D )。 A.'字' B. "A" C. "ABC" D. '\x41' 2.下面叙述正确的是(A )。 A.程序中必须包含有输入语句 B. 变量按所定义的类型存放数据 C. main函数必须位于文件的开头 D. 每行只能写一条语句 3.错误的叙述是(D )。 A.一个C语言源程序可由一个或多个函数组成 B.若一条语句较长,也可分写在下一行上 C.C程序必须包含一个main( )函数 D.构成C语言源程序的基本单元是算术表达式 4.(A )是关于C语言数据类型的正确叙述。 A.变量必须先定义后使用 B. 不允许使用空类型 C. 枚举类型不是基本类型 D. 数组并不是构造类型 5.main( )函数的位置(B )。 A.必须在自定义函数前面 B. 可以在自定义函数后面 C. 必须位于程序的最前面 D. 必须在自定义函数后面 6.C语言函数体由(C )括起来。 A.< > B. ( ) C. { } D. [ ] 7.(A )是不正确的叙述。 A.注释说明只能位于一条语句的后面 B. C源程序的基本组成单元是函数 C. C源程序可由一个或多个函数组成 D. 每条语句最后必须有一个分号 8.一个C语言源程序是由(B )。 A.一个主程序和若干子程序组成 B. 函数组成 C. 若干过程组成 D. 若干子程序组成 9.结构化程序设计的三种基本结构是(C )。 A.函数结构、判断结构、选择结构 B. 平行结构、嵌套结构、函数结构 C. 顺序结构、选择结构、循环结构 D. 判断结构、嵌套结构、循环结构 10.C源程序的调试是指对源程序进行(C )。 A.录入与编辑 B. 查错与编译 C. 查错与排错 D. 连接与运行 11.C语言中,可将一系列语句置于(C )从而构成复合语句。 A.一对尖括号"< >"之间 B. 一对圆括号"( )"之间 C. 一对花括号"{ }"之间 D. 一对方框号"[ ]"之间 12.构成C源程序的基本单位是( D )。 A.语句 B. 变量 C. 运算符 D. 函数 13.以下叙述中正确的是(A )。 A.C源程序中注释部分可以出现在程序中任意合适的地方 B.一对花括号"{ }"只能作为函数体的定界符 C.C源程序编译时注释部分的错误将被发现 D.构成C源程序的基本单位是函数,所有函数名都可以由用户命名

在C语言中的实型变量分为两种类型.

第二章练习题 一、填空题 1、在C语言中的实型变量分为两种类型,它们是float型和()型。 2、若有定义:char c='\010';则变量c中包含的字符个数为() 3、已知字母a的ASCII码为十进制数97,且设ch为整型变量,则表达式ch='a'+'8'-'3'的值为() 4、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为()个;一个int型数据在内存中所占的字节数为()个。 5、在C语言中,表示逻辑“假”值用数字()表示。 6、C语言中的标识符只能由字母、数字和()三种字符组成。 7、表达式8/4*(int)(2.5)/(int)(1.25*(3.7+2.3))的值为() 8、整型常量即整常数。可用三种形式表示:十进制整数、八进制整数以()开头、十六进制整数以()开关(注:请用小写字母) 9、请将75写成C语言八进制和十六进制表示(),()。 10、若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是() 11、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为()。 12、若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为(),b值为(),c值为()。 13、若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为() 14、若a是int型变量,则计算表达式a=25/3%3 后a的值为() 15、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为(),n的值为() 16、若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为() a+(int)(b/3*(int)(a+c)/2)%4 17、若有以下定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为()(float)(a+b)/2+(int)x%(int)y 18、若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为() (x+y)%2+(int)a/(int)b 19、所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为() 20、若有定义:int e=1,f=4,g=2;float m=11.29,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt(n*1.2/g+m)后k的值是() 21、若x为int型变量,则执行以下语句后x的值是()

相关文档