C程序设计基础期中测验试题详解
- 格式:doc
- 大小:144.00 KB
- 文档页数:12
信息与通信工程学院2010-11-1学期《C语言程序设计》期中试卷班级:学号:姓名:得分:参考答案一、判断题(每题1分,共10分)1、”printf”是C语言的关键字之一。
错2、一个完整的C语言程序中可以没有输入语句。
对3、字符串”abcd\123”中含有5个字符。
错,6个4、一个float类型的数据,占用8个字节的存储空间。
错,45、1234/100%10的值是2。
对6、程序中调用函数gets(a)时,其中的实参a必须为一个地址。
对7、C语言程序的运行是从程序内的第一个函数开始、运行到最后一个函数结束。
错8、表达式y=0,2+5||y=3运算后y的值是3。
错,是09、for(i=0;i=1;i++);是一个死循环。
对10、j=3;printf(”%d”,++j); 输出的值是4。
对二、单项选择题(每题1分,共20分)1、编辑好的C程序,必须先经过____,然后才可以运行。
A 编译B 编译、连接C 预处理(预编译)、编译、连接D 转变成二进制文件2、C程序的基本结构类型是____。
A 顺序结构、分支结构、循环结构三种B 单分支结构、双分支结构、多分支结构三种C 当型循环结构、直到型循环结构两种D 有参函数、无参函数两种3、关于C源程序的格式要求,错误的叙述是____。
A 一行可以写多句,一句可以写多行B 每行须以分号结束C 顺序结构的上下行语句左侧应对齐D 语句的内部(小语句)另起一行书写时,起始位置一般应比上一行向右缩进4小格4、用scanf、printf函数输入、输出数据时,错误的格式是____。
A 输入long int型数据时使用%ld格式B 输入double型数据时使用%lf格式C 输出long int型数据时使用%ld格式D 输出double型数据时使用%lf格式5、关于整型数据的取值范围,错误的是____。
A VC++中int型数据是-231~+231-1B WinTC、TurboC中int型数据是-215~+215-1C long int型数据是-231~+231-1D char型数据是0~+28-16、C程序运行时,如果数据溢出,计算机会____。
一、选择题:【1】在C语言中,用户能使用的正确标识符是。
A) 5f B) _for C) struct D) _f.5答案:B分析:标识符只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线;大小写敏感;不能使用关键字;最长32个字符。
【2】以下那个是正确的C语言常量。
A) 0678 B) '\0101' C) 1.2E3.5 D) 123L答案:D【3】以下对C语言源程序有关常识正确的描述是。
A)main函数必须位于文件的开头B)每个语句必须单独一行C)标识符中大小写字母没有区别D)宏定义#define部分不一定要放在程序的最开头位置答案:D【4】以下for循环的执行次数是。
for(x=0,y=0;(y=123)&&(x<4);x++)A)是无限循环B)循环次数不定C)执行4次D)执行3次答案:C分析:若要判断(y=123)&&(x<4)假,因为y=123永远为真,所以只需要判断x<4为假即可。
【5】对for(表达式1;;表达式3)可理解为。
A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1; 表达式1;表达式3)D)for(表达式1; 表达式3;表达式3)答案:B【6】设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是。
A)while循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次答案:C分析:因为k=0为假,所以程序不执行其后的语句。
【7】C语言中while和do-while循环的主要区别是。
A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件严格C) do-while允许从外部转到循环体内D) do-while的循环体不能是复合语句答案:A【8】设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为。
c语言大一期中考试试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是()。
A. varB. defineC. intD. let答案:C2. 下列选项中,不属于C语言基本数据类型的是()。
A. intB. floatC. stringD. char答案:C3. 在C语言中,以下哪个符号用于表示逻辑与操作()。
A. &&B. ||C. !D. =答案:A4. 下列哪个选项是正确的C语言函数声明()。
A. int function_name(int a, int b);B. int function_name(int a; int b);C. int function_name(int a, int b)D. int function_name(int a, int b)答案:A5. C语言中,用于输入输出的库函数是()。
A. math.hB. stdio.hC. string.hD. time.h答案:B6. 下列哪个选项是C语言中正确的注释方式()。
A. // 这是注释B. /* 这是注释 */C. //这是注释D. /*这是注释答案:B7. C语言中,用于定义数组的关键字是()。
A. listB. arrayC. tableD. int答案:B8. 下列哪个选项是C语言中正确的字符串定义方式()。
A. char str[] = "Hello";B. char str[] = 'Hello';C. char str = "Hello";D. char str[] = {"Hello"};答案:A9. C语言中,用于定义指针的关键字是()。
A. pointerB. refC. ptrD. *答案:D10. C语言中,用于定义结构体的关键字是()。
A. structB. classC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个全局变量。
c语言程序设计基础试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是C语言中的合法整数?A. 0x10B. 0X1GC. 08D. 0L答案:A3. 在C语言中,用于定义一个函数的关键字是?A. defineB. functionC. defD. void答案:B4. C语言中,以下哪个是正确的字符串定义?A. char str[] = "Hello";B. char str[] = {"Hello"};C. char str = "Hello";D. char str[] = 'Hello';答案:A5. 在C语言中,以下哪个运算符用于求余?A. %B. /C. //D. %答案:A二、填空题(每题3分,共15分)1. 在C语言中,定义一个整型变量的关键字是________。
答案:int2. 如果一个函数没有返回值,应该使用________关键字声明。
答案:void3. 在C语言中,________运算符用于连接字符串。
答案:+4. C语言中,________运算符用于比较两个值是否相等。
答案:==5. 在C语言中,________关键字用于定义一个指针变量。
答案:*三、简答题(每题5分,共20分)1. 简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被当作指向数组第一个元素的指针。
数组的每个元素可以通过指针运算来访问。
2. 解释C语言中函数原型声明的作用。
答案:函数原型声明提供了函数的名称、返回类型和参数类型,但不需要函数体。
它允许在函数定义之前调用函数,同时帮助编译器检查函数调用的正确性。
3. 什么是C语言中的预处理指令,举例说明。
答案:预处理指令是C语言中的特殊命令,用于在编译之前处理源代码。
大一c语言期中考试题和答案大一C语言期中考试题和答案一、选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的整型常量?A. 0x12B. 0x12.0C. 0x12.5D. 0x12L答案:A2. 以下哪个是C语言中的关键字?A. mainB. includeC. intD. input答案:C3. 在C语言中,以下哪个选项不能用作变量名?A. _nameB. 2namesC. name$D. name答案:C4. 以下哪个选项是C语言中的合法字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!", "Another String"D. "Hello, World!"答案:D5. 在C语言中,以下哪个选项是正确的函数声明?A. int function();B. int function int x;C. int function(int x);D. int function x;答案:C6. C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {1, 2, 3};D. All of the above答案:D7. 在C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr = 0;C. int ptr = 0;D. Both A and B答案:D8. C语言中,以下哪个选项是正确的条件语句?A. if (x > 0)printf("Positive");B. if x > 0printf("Positive");C. if (x > 0)printf("Positive")elseprintf("Non-positive");D. Both A and C答案:D9. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)printf("%d ", i);B. for (int i = 0; i <= 10; i++)printf("%d ", i);C. for (i = 0; i < 10; i++)printf("%d ", i);D. All of the above答案:D10. C语言中,以下哪个选项是正确的函数调用?A. void function();B. function();C. function(10);D. Both B and C答案:D二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是______。
大一c语言期中考试题及答案解析一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于声明函数?A. intB. returnC. voidD. function答案:C2. 若有定义 `int a[5] = {1, 2, 3, 4, 5};`,则`a[0]`的值是多少?A. 0B. 1C. 2D. 5答案:B3. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. -variableD. variable!答案:B4. C语言中,以下哪个运算符用于逻辑“与”操作?A. &&B. ||C. !D. ~答案:A5. 以下哪个选项不是C语言中的控制语句?A. ifB. whileC. switchD. loop答案:D6. C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strlength()C. length()D. strlenth()答案:A7. 若有定义 `int x = 10;`,则执行`x += 5;`后,`x`的值是多少?A. 10B. 15C. 5D. 25答案:B8. C语言中,以下哪个选项是正确的二维数组声明?A. int array[3][2];B. int array[][];C. int array[3][];D. int array[2,3];答案:A9. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!'"D. 'Hello, World!'答案:A10. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strcmp()答案:A二、填空题(每题2分,共20分)1. C语言中,`printf()`函数用于__输出__。
大一c语言期中考试题及答案解析一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. structB. intC. voidD. function答案:B2. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. variable-2答案:C3. 在C语言中,以下哪个运算符用于取模?A. %B. /C. *D. -答案:A4. C语言中,以下哪个选项是正确的注释方式?A. // This is a commentB. /* This is a comment */C. //* This is a commentD. /* This is a comment */答案:A5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. =答案:A6. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. classD. typedef答案:A7. C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. All of the above答案:D8. 下列哪个选项是C语言中的文件操作函数?A. printf()B. scanf()C. fopen()D. fclose()答案:C9. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[10] = "Hello";B. char str[] = "Hello";C. char str = "Hello";D. Both A and B答案:D10. C语言中,以下哪个选项是正确的指针声明?A. int *ptr;B. int *ptr = NULL;C. int ptr;D. Both A and B答案:D二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量的关键字是________。
第一部分C语言基础一、选择题1.以下正确的C语言标识符是()A.%X B.a+b C.a123 D.test!2.已定义int a,b;则以下不正确的C语句是()A.a*=5; B.b/=2; C.a+=1.75; D.b&&=a;3.若x、i、j和k都是整型变量,则执行下面表达式后x的值为()x=(i=4,j=16,k=32)A.4 B.16 C.32 D.524.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()A.必须是字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字、下划线中的任一字符5.下面正确的字符常量是()A.“c” B.’\\”C.‘w’D.”6.设int a=2,b=0,c;则执行语句c+=b&&a--后, c的结果为()。
A.0,1 B.1,0 C.2,0 D.不确定7. 以下不正确的C语言标识符是( )A) intB) a_1_2C) ab1exeD) _x8.以下是正确的C语言标识符是( )。
A) #defineB) _123C) %dD) \n9.下列四组字符串中都可以用作C语言程序标识符的一组是( ) 。
A) print B) i\am C) Pxq D) str_l_3d one_half My->book Cpp••• oodbs tart$it line# pow10.下面各选项组中,均是C语言关键字的组是( ) 。
A) auto,enum,includeB) switch,typedef,continueC) signed,union,scanfD) if,struct,type11.下列不属于C语言关键字的是( ) 。
A) defaultB) registerC) enumD) external12.C语言程序从main()函数开始执行,所以这个函数要写在( )。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置13.下列关于C语言的叙述错误的是( )A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义14.在C语言中,错误的int类型的常数是( ) 。
第一部分C语言基础一、选择题1.以下正确的C语言标识符是()A.%X B.a+b C.a123 D.test!2.已定义inta,b;则以下不正确的C语句是()A.a*=5; B.b/=2; C.a+=1.75; D.b&&=a;3.若x、i、j和kA.4 B.164.CA.必须是字母C.必须为字母或下划线D5.语言标识符是()语言标识符是()。
B)?_123?C)?%d?D)?\n9.下列四组字符串中都可以用作C语言程序标识符的一组是()?。
A)?print? B)?i\am C)?Pxq D)?str_l_3d one_half? My->book? Cpp•••?oodbs tart$it line# pow10.下面各选项组中,均是C语言关键字的组是()?。
A)?auto,enum,include?B)?switch,typedef,continueC)?signed,union,scanf?D)?if,struct,type11.下列不属于C语言关键字的是()?。
?12.C语言程序从main()A)?B)?C)??int类型的常数是()?。
C)?037?D)?0xAF15.将字符g赋给字符变量c,正确的表达式是()?。
A)?c=\147?B)?c="\147"?C)?c=’\147’?16.下列转义字符中错误的一个是()。
A)?’\000’?B)?’\0014’?C)?’\x111’?D)?’\2’17.将空格符赋给字符变量c,正确的赋值语句是()。
A)?c=’\0’?B)?c=NULL?18.已知:char?a=’A)?包含B)?包含C)?包含D)?19.字符串()。
21.已知:char?a;int?b;float?c;double?d;执行语句"c=a+b+c+d;"后,变量c的数据类型是()?。
A)?int?B)?char?C)?float?D)?double22.温度华氏和摄氏的关系是:?C=-(F-32)。
c期中考试题库及答案一、选择题(每题2分,共20分)1. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-nameD. variable_name答案:B2. 在C语言中,哪个关键字用于声明一个函数?A. intB. functionC. voidD. return答案:C3. C语言中,哪个运算符用于比较两个值是否相等?A. ==B. !=C. =D. <=答案:A4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. ++答案:A5. 在C语言中,哪个函数用于计算一个数的绝对值?A. abs()B. fabs()C. sqrt()D. pow()答案:A6. C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. strncpy()C. strcat()D. strncat()答案:A8. C语言中,哪个函数用于将整数转换为字符串?A. atoi()B. itoa()C. strtol()D. sprintf()答案:B9. 在C语言中,哪个关键字用于声明一个指针?A. int*B. pointerC. *D. ptr答案:C10. C语言中,哪个函数用于计算一个数的平方根?A. sqrt()B. pow()C. abs()D. log()答案:A二、填空题(每题2分,共20分)1. C语言中,用于声明一个整型变量的关键字是________。
答案:int2. C语言中,用于声明一个浮点型变量的关键字是________。
答案:float 或 double3. C语言中,用于声明一个字符型变量的关键字是________。
答案:char4. C语言中,用于声明一个布尔型变量的关键字是________。
C程序设计基础期中测验试题详解1 / 12————————————————————————————————作者:————————————————————————————————日期:2 / 12《C程序设计基础及实验》课程期中考试试卷参考答案试题一、单选题(每小题2分,共20分)1. 以下正确的字符常量是______。
A.’\412’B.255 C.’\08’D.’\’【解答】A.八进制412超出了8位二进制所能表示的范围03ff;B. 255是一个合法的整数,可以表示一个字节的值;C. 8不是一个合法的八进制数字;D. \是转义字符,\’表示单个单引号字符本身,所以。
字符常量缺少右单引号。
2. 假设有定义:float x=16/5/2.0, y=16/5.0/2; 则x 和y 的值分别为______。
A.1.5 1.6 B.1.6 1.6 C.1.5 1.5 D.1.6 1.5【解答】16/5/2.0 → (16/5)/2.0 → 3/2.0 → 1.516/5.0/2 → (16/5.0)/2 → 3.2/2 → 1.63. 下列语句中,_____ 将输出%d。
A.printf(“%d”); B.printf(“%%d”); C.printf(“\%d”); D.printf(“%%%d”)【解答】A.%d表示输出十进制整型量,但缺少相应的输出表达式,故输出结果是随机值;B.%%表示输出一个%符号本身,d是普通字符,原样输出,所以输出%d;C.\%表示符号%,%d表示输出十进制整型值,故输出结果是随机值;D.%%表示输出符号%本身,%d表示输出十进制整型值。
4. 下列程序段输出结果为_____。
int x=1, y=012;printf(“%d”,y*x++);A.12 B.10 C.20 D.24【解答】x++表达式的值是1,y*x++ → y*1 → y → 012 → 105. 下列程序段输出结果为_____。
int a=1,b=2,c=2,t;3 / 12while(a<b<c) { t=a; a=b; b=t; c--; }printf(“%d,%d,%d”,a,b,c);A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1【解答】a=1,b=2,c=2(1) 表达式a<b<c → 1<2<2 → 1 < 2 → 1条件成立,则执行循环体,结果为:a=2,b=1,c=1(2) 表达式a<b<c → 2<1<1 → 0 < 1 → 1条件成立,则执行循环体,结果为:a=1,b=2,c=0(3) 表达式a<b<c → 1<2<0 → 1 < 0 → 0条件不成立,循环结束。
6. 在下图中,阴影部分区域可用表达式_______来表示。
////////////////Xa b cA.(x<=a)&&(x>=b)&&(x<=c) B.(x<=a)||(b<=x<=c)C.(x<=a)||(x>=b)&&(x<=c) D.(x<=a)&&(b<=x<=c)【解答】(x<=a)|| ((x >=b) && (x <= c)) →(x<=a)|| (x>=b) && (x <= c)7. 下列程序段输出结果为_____。
int x = -3, y = 2;if(x>y);x = -x;if(x<y)y = -y;printf("x=%d,y=%d\n", x, y);A.x=3,y=-2 B.x=3,y=2 C.x=-3,y=2 D.x=-3,y=-2【解答】x=3,y=2;请注意:if(x>y);8. 对于循环while(!e) 语句,!e等价于_____。
A.e==0 B.e!=0 C.e==1; D.e!=1【解答】!e e==0 e!=0 e==1 e!=1 e为0 1 1 0 0 14 / 12e 为非0 0 0 1 0/1 0/19. 循环for(i=0, j=5; ++i!=--j; ) printf(“%d %d”, i, j); 将执行_____。
A.6次B.3次C.0次D.无限次【解答】(1) i=0, j=5: ++i → 1 , --j → 4, i=1,j=4, 1 != 4成立;打印;i=1, j=4;(2) i=1,j=4: ++I → 2 , --j → 3, i=2,j=3, 2 != 3成立;打印;i=2, j=3;(3) i=2,j=3: ++I → 3, --j → 2, I = 3, j=2, 3 != 2成立;打印;i=3,j=2;(4) ……10. 下列程序段执行后s值为_____。
int i=5, s=0;do if (i%2) continue; else s+=i; while (--i);A.15 B.9 C.6 D.以上均不是【解答】(1) I=5,s=0: i%2→5%2→1成立:continue;--i→4, i=4;(2) I=4,s=0: i%2→4%2→0不成立:s=0+4=4;--i→3, i=3(3) I=3,s=4: i%2→3%2→1成立:continue;--i→2, i=2(4) I=2,s=4: i%2→2%2→0不成立:s=4+2=6; --i→1,i=1(5) I=1,s=6: i%2→1%2→1成立:continue;--i→ 0试题二、填空题(每小题2分,共20分)1. 表达式1+4/5+15<7+4%5+(8,10) 的值为_____。
【解答】1+(4/5)+15<7+4%5+(8,10)→ 1+0+15<7+4%5+(8,10)→1+15<7+4%5+(8,10)→16<7+4%5+(8,10)→16<7+4+(8,10)→16<11+(8,10)→16<11+10→16<21→12. 表达式!!5 的值为_____。
5 / 12【解答】!!5 → !(!5) →!0→13. 表达式~(10<<1)&4 的值为______。
【解答】10: 0000101010<<1: 00010100~(10<<1): 111010114: 00000100&----------------------------------00000000 即04. 假设有定义:int x=10;则表达式0<=x<=9 的值为_____。
【解答】0<=x<=9 → (0<=x)<=9 → (0<=10) <=9 → 1 <= 9 → 15. 下列for循环语句将输出: 0 1 2 0 1 2 0 1 2.for( i=1; i<=9; i++ ) printf("%2d", _______);【解答】(i-1)%36. 对于定义: int m=5, y=2; 当计算表达式y+=y-=m*=y后,y的值为_____。
【解答】y+=y-=m*=y ⇔ y += (y -= (m *=y))先计算m*=y: 由于m=5, y=2, 所以:m=m*y=5*2→10再计算y-=10: 由于y=2,所以:y = y-10=2-10→ -8最后计算y += -8: 由于y=-8,所以:y = y+(-8)=(-8)+(-8)→-167. 对于char c; 若已知其值为小写字母, 则将其转换为相应大写字母的表达式为_____。
【解答】c-‘a’+’A’8. 下列语句的输出结果为_____。
printf("%d#%x#", 027, 27);6 / 12【解答】23#1b#9. 已知字符’a’的ASCII码为97,则下列语句的输出结果为_____。
printf("%c#%d#",98,’c’);【解答】b#99#10. 下列程序段将输出_____。
unsigned char x=255,y=’\1’;switch(!!x) {case 0: printf("*0*#");break;case 1:switch(y) {case 0: printf("*1*#");break;case 1: printf("*2*#");break;}default: printf("*3*#");}【解答】*2*#*3*#试题三、程序阅读题(每小题6分,共30分)1. 下列程序将输出_____。
#include <stdio.h>void swap(int x, int y){int t;t=x; x=y; y=t;return;}void main(void){int a=3, b=2;swap(a, b);7 / 12printf("%d#%d#", a, b);return;}【解答】3#2#注:尽管在函数swap()里,形参x和y的值发生了交换,但根据函数参数的传递原则——“实参向形参单向传值(即x向a赋值,y向b赋值),形参的改变不影响实参”,实参变量a和b的值未发生交换!2. 下列程序将输出_____。
# include <stdio.h>int s;int f(int m){static int k=0;for(; k<=m; k++) s++;return s;}void main(void ){int s=1;s=f(2)+f(2);printf("%d#%d#", s, f(20));return;}【解答】输出结果为:6#21#注:(1)全局变量s的初始值为0;(2)在f函数中,s是全局变量有效,而在main函数中,s是局部变量有效;(3)在f函数中,k是静态变量,每次函数f调用结束后,其内存单元和值仍然保留。
3. 若输入:1273 <回车>,以下程序的输出结果是_______。
#include <stdio.h>void main(void){int n, m;8 / 12scanf(“%d”, &n);m=0;while (n>0) {m=m*10+n%10;n/=10;}printf(“%d”, m);return;}【解答】输出结果是:37214. 若输入-6+15*3/5=<回车> , 以下程序的输出结果是_______。