c语言综合习题及答案
C语言综合习题及答案
C语言练习题一、选择题1. 一个完整的C源程序是【B 】。
A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【C】。
A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【B】。
A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【B 】。
A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置程序的执行是从【A 】开始的。
A)主函数B)子函数C)从程序第一行D)printf()函数6.以下选项中不合法的标识符是【C 】A)print B)FOR C)&a D)_007.以下选项中可作为C语言合法常量的是【A】A)-80 B)-080 C) D)8.以下选项中不属于字符常量的是【B】A)′C′ B)"C" C)′\xCC′ D) ′\072′9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】A)float B)longC)int D)double10. 以下关于函数叙述中,错误的是【D】。
A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式11. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【D】。
c语言期末考试题库大题及详解答案
c语言期末考试题库大题及详解答案C语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。
答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。
整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。
每种数据类型都有其特定的取值范围和占用内存大小。
2. 请解释C语言中的数组和指针的区别。
答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。
指针是一个变量,它存储另一个变量的内存地址。
数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。
二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。
答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除四种基本运算。
计算机c语言综合试题及答案
计算机c语言综合试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. <=D. >=答案:A4. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A5. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. voidD. int答案:C6. C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. All of the above答案:D7. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. All of the above答案:D8. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A9. C语言中,以下哪个选项用于定义一个无限循环?A. while(1)B. for(;;)C. do whileD. All of the above答案:D10. 在C语言中,以下哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。
c语言试题及详细答案
c语言试题及详细答案1. 以下哪个选项是C语言中的关键字?A. intB. floatC. stringD. array答案:A2. 在C语言中,哪个运算符用于计算两个整数的和?A. +B. -C. *D. /答案:A3. 下面哪个选项是C语言中正确的注释方式?A. // 这是一个注释B. /* 这是一个注释 */C. //* 这是一个注释D. /* 这是一个注释 */答案:B4. 在C语言中,以下哪个选项表示的是浮点型变量?A. int a;B. float a;C. char a;D. double a;答案:B5. 以下哪个函数用于输出字符串?A. printf()B. scanf()C. puts()D. getchar()答案:C6. 在C语言中,以下哪个选项表示的是字符型变量?A. int a;B. char a;C. float a;D. double a;答案:B7. 在C语言中,以下哪个选项是正确的函数定义?A. int function() { return 0; }B. int function() { }C. int function() { return 0; }D. int function() { return 1; }答案:C8. 在C语言中,以下哪个选项是正确的数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array = {1, 2, 3, 4, 5};答案:A9. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > 0) { ... }B. if (x > 0) ... }C. if (x > 0) { ... }D. if (x > 0) ... }答案:A10. 在C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++) { ... }B. for (int i = 0; i < 10; i++) ... }C. for (int i = 0; i < 10; i++) { ... }D. for (int i = 0; i < 10; i++) ... }答案:A。
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.数组其实不是构造类型4main( )函数的位置(B).A.必需在自界说函数前面B.可以在自界说函数后面C.必需位于法式的最前面D.必需在自界说函数后面5C语言函数体由(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源法式的基本单位是函数,所有函数名都可以由用户命名13下面叙述正确的是(D).A.每行最多只能写两条语句B.法式中必需含有自界说函数C.main()函数必需位于源法式文件的开头D.所有语句都必需以分号";"结束14下面叙述毛病的是(B).A.若一条语句较长,可分写在下一行或多行上B.构成C语言源法式的基本单位是语句C.C源法式中年夜、小写字母是有区另外D.一个C源法式可由一个或多个函数组成15(A)是关于C语言数据类型的正确叙述.A.枚举类型不是基本类型B.数组不是构造类型C.变量使用前应界说相应的数据类型D.不允许使用空类型16C源法式中main()函数的位置(C).A.必需位于法式的最前面B.必需在系统库函数后面C.可以在自界说函数后面D.必需在自界说函数前面18下面叙述毛病的是(D).A.C源法式可由一个或多个函数组成B.C源法式必需包括一个main()函数C.一个C源法式的执行是从main()函数开始,直到main()函数结束D.注释说明部份只能位于C源法式的最前面20C语言的下列运算符中,优先级最高的运算符是(A).A.++B.+=C.||D.!=21(D)为正确的用户标识符.A.structB.5fC.D._for22C语言基本数据类型包括(B).A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、字符串型23(A)为合法的常量.A.52686LB.E-7C.D.'E12'24(C)为正确的变量名.A.-k15B.intC.k_5D.25(D)为正确的字符常量.A.''\\''B."\24m"C."c"D.'M'26(C)为非法的字符串常量.A." "B."s"C.'efg'D."26'62"27C语言整型数据在内存中的代码是用(C)暗示的.A.原码B.反码C.补码D.BCD码28以下选项中,合法的实型常数是( B ).A.E-3B..2E1C.D.29下列C语言合法的数据类型关键字是(B).A.DoubleB.unsignedC.integerD.Char30Turbo C中,int型数据占用的字节数(B).A.由用户自己界说B.为2个字节C.是任意的D.即是所用计算机的字长31Turbo C中,基本数据类型存储空间长度的排列顺序是(A).A.char<int<long int<float<doubleB.char=int<long int<float<doubleC.char<int<long int=float=doubleD.char=int=long int<float<double32以下叙述中正确的是(A).A.字符常量用一对单撇号' '作为单个字符的定界符B.字符常量和字符串常量一样,都是用双引号括起来C.字符常量存储时,自动在字符后加一个字符结束符号'\0'D.字符常量和字符串常量所分配的内存空间年夜小是一样的33(B)为正确的用户标识符.A.3_rowB.max_atC.unionD.min-534C语言的基本数据类型包括(A).A.整型、实型、字符型B.整型、实型、空类型C.整型、字符型、指针型D.整型、实型、逻辑型35(D)为合法的常量.A.5,326B.C.'b_k'D.1.23E+836(D)为正确的变量名.A.5_proB.caseC.elseD.pro_537(C)为正确的字符常量.A.'bcd'B.'\084'C.'@'D.'165'38(A)为非法的字符串常量.A.'123'B."case"C."056"D." "40已知'A'的ASCII码的十进制值为65,'0'的ASCII码的十进制值为48,则以下法式运行结果是(A).main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2); }A.67,DB.C,DC.C,68D.67,6841若有界说 int m=6; 则正确的赋值表达式是(C).A.m*7B.m*5=8C.m-=m*6D.double(-m)42语句 k=(m=5,n=++m); 运行之后,变量k、m、n的值依次为(D).A.5,5,6B.5,6,5C.6,6,5D.6,6,643语句 x=5%4+(4/5); 运行之后,整型变量x的值为(A).A.1B.2C.3D.044(B)语句符合C语言语法.A.float z=28,int x,y=18;B.int x=25,y=25,z=25;C.int x=25:y=25:z=25;D.int x+y=z;45若有界说int a,x; 则语句a=(x=8,x+8); 运行后,变量a、x的值依次为(A).A.16, 8B.8, 8C.16, 16D.8, 1646若变量 m, n, t已界说且赋予初值,则正确的表达式是(B).A.m=m+1=t-nB.m=6+n+t,m++C.m=m\2D.m=int(5.6%4)47若有界说:int a,b; float x,则以下不符合C语言语法的表达式是(A).A.x%7B.x/=a-bC.a=b=2D.x=(float)a/b48若有界说:int m=4,n=5;float k;,则以下符合C语言语法的表达式是(B).A.(m+n)*=kB.m=(n==5)C.k=float(n)/mD.49若有界说:int a=6; 则语句 a*=a-=a/=3; 运行后,a的值是(B). A.10B.0C.34D.2450下面关于C语言变量的叙述中,毛病的是(A).A.可以用define关键字界说变量B.变量名用年夜小写字母是有区另外C.C语言允许分歧基本类型的变量之间进行混合运算D.C语言中要求对变量作强制界说的主要理由是:便于确定类型和分配空间51若有界说:int a=5,b=2; 则表达式b= (a!=5)的值为(B).A.5B.0C.3D.252逗号表达式 (a=15,a*4),a+15 的值为(B).A.15B.30C.75D.6053若有界说:int b=-15; 则(A)为正确的赋值表达式.A.b+=b*3B.b=*5C.*b=6D.b+10=-554若有界说:int x,a,b; 语句x=(a=2,b=3,a+b); 运行后,x、a、b的值依次为(C).A.2 3 5B.3 2 5C.5 2 3D.5 3 255若有界说:int a,b=5; 语句a=(b/2)+b%2; 运行后,a的值为( B ).A.0B.3C.4D.256(C )语句符合C语言语法.A.int a=2,b+=a;B.int a=b=2,c=5;C.float x=2.3,b,c;D.,int i,j=6;57若有界说:int a=3; 语句a+=a-=a*a; 运行后,a的值为( C ).A.0B.-3C.-12D.-658若有界说 int x=1,y=2,n=3; 则( A )为正确的表达式.A.x=y*3,y=(x+n)/yB.x=nyC.float(y/n)D.(x+y)(y+n)60下列语句中,符合C语言语法的赋值语句是( C ).A.a=7+b+c=a+7;B.a=7+b++=a+7;C.a=7+b,b++,a+7;D.a=7=b,c=a+7;61( A )是正确的叙述.A.与 5/6 等价B.'G' 与"G" 等价C.5/6 与等价D.++3与4 等价62下面叙述中,毛病的是( D ).A.C语言中的表达式求值,是按其运算符的优先级先高后低的次第进行B.自增与自减运算符的结合方向为“自右至左”C.关系运算符的优先级低于算术运算符D.C语言算术运算符不包括模运算符“%”63( C )是正确的叙述.A.表达式"m"+"M" 是合法的B.若变量x, y为整型,则(a+b)++是合法的C.强制类型转换运算的优先级高于算术运算D.表达式 'm' * 'n' 是分歧法的64若有界说 int i=1,j=9; 则表达式 (++j)*(i--) 的值为( B ).A.0B.10C.9D.865设整型变量x为7,使整型变量y不为2的表达式是( A ).A.y=x%3B.y = x/3C.y =(++x)/3D.y=8-(--x)66若已界说 int a=3,b=2,c=1; 则语句 ++a||++b&&++c; 运行后b的值为( D ).A.0B.3C.1D.267若有界说:int i=5,j=4;则语句 i/=++j; 运行后i的值为( B ).A.10B.1C.D.068若已界说:int a=2,b=2; 则表达式 (a+(b++), b) 的值是( A ).A.2B.3C.4D.669若有界说:int r,x=245; 则语句 r=x/100%9; 运行后r的值为( A ).A.2B.5C.0D.2770若已界说:int i=6,t; 则语句 t=3+(--i); 运行后t的值为( C ).A.9B.7C.8D.571C语言的 % 运算符按运算对象的个数属( C ).A.单目运算符B.四目运算符C.双目运算符D.三目运算符72若已界说:int a=5,b=9,c=6; 则语句 b++; ++c; a=b-c; 运行后a的值为( B ).A.5B.3C.2D.473下面叙述正确的是( B ).A.2/3 与 2%3 等价B.5/(int)4.0 与 5/4 等价C.++2 与 3 等价D.++2与--3 等价74下面叙述毛病的是( A ).A.算术运算符中只有"*"、"/"优先级高于关系运算符B.模运算符"%"是C语言基本的算术运算符C.自加和自减运算符只能用于变量,而不能用于常量或表达式D.算术运算符中不包括"="运算符75下面叙述正确的是( A ).A.C语言中整型与字符型变量的混合运算表达式的结果是整型B.(3+9)++ 是正确表达式C.模运算符"%"两边运算数的数据类型是任意的D."abc"+"xxx"是正确表达式76若有界说:int i=3,j=6; 则表达式(--i)*(j++)的值为( C ).A.18B.15C.12D.1077若有界说:int a,b=6; 语句a=--b; 运行后,a、b的值分别是( C ).A.5 6B.6 5C.5 5D.6 678若有界说:int x,y,z; 语句x=(y=z=3,++y,z+=y); 运行后,x的值为( C ).A.6B.8C.7D.380以下法式运行时,若从键盘输入5,则输出结果是(D ). main() { int a; scanf("%d",&a); if(a++>5) printf("%d\n",a); else printf("%d\n",a--); }A.7B.4C.5D.681若已界说float x; 要从键盘输入数据36.582给变量x,则应选用( B )语句.A.scanf("%2.3f",&x) ;B.scanf("%6f",&x) ;C.scanf("%6.3f",&x) ;D.scanf("%5.3f",&x) ;82若已界说double y; 拟从键盘输入一个值赋给变量y,则正确的函数调用是( C ).A.scanf("%d",&y) ;B.scanf("%7.2f",&y) ;C.scanf("%lf",&y) ;D.scanf("%ld",&y) ;83已有界说 char s; 使用scanf( )函数输入一个字符给变量s,不正确的函数调用是( D ).A.scanf("%c",&s) ;B.scanf("%d",&s) ;C.scanf("%u",&s) ;D.scanf("%lf",&s) ;84函数putchar( ) 的功能是向终端输出( A ).A.一个字符B.多个字符C.一个关系表达式D.一个实型变量值85若已界说int a=11; 执行以下语句后的输出结果是( B ). printf("a=%d,a=%o,a=%x\n",a,a,a) ;A.a=11, a=11, a=bB.a=11, a=13, a=bC.a=11, a=13, a=cD.a=11, a=12, a=1386若有界说int m=4321,n=123,k=21; 语句printf("%4d+%3d+%2d",m,n,k); 执行后的输出结果是(C ).A.B.43211232C.4321+123+21D.432+123+0287已有如下界说和输入语句,char c1,c2;int x; scanf("%c%d%c",&c1,&x,&c2); 若要求x、c1、c2的值分别为9、'K'和'H',正确的数据输入是( A ).A.K9HB.K 9 HC.K9 HD.9KH88以下法式段的运行结果是( B ). int a=1; printf("%d, %d, %d\n", a, ++a, a++);A.3,3,1B.2, 2, 1C.1, 2, 3D.3, 2, 189以下法式的运行结果是( D ).void main(){ int a=65;char c='A';printf("%d+%c=%d\n",a,c,a+c); }A.A+A=AAB.65+A=65AC.65+65=130D.65+A=13090若已界说:int x=7;float y=7.0; 以下语句中能输出正确值的是( B ).A.printf("%d %d",x,y);B.printf("%d %.3f",x,y);C.printf("%.3f %.3f",x,y);D.printf("%.3f %d",x,y);91putchar函数可以向终端输出一个( A ).A.字符或字符型变量值B.整型变量表达式值C.实型变量值D.字符串92若已界说:int a=6;float b=1.5; 要求输出形式为: 6 * 1.50=9.00 ,应选用的正确输出语句是( B ).A.printf("%d * %f=%f",a,b,a*b);B.printf("%d * %.2f=%.2f",a,b,a*b);C.printf("%d * %d=%.2f",a,b,a*b);D.printf("%.2f * %.2f=%.2f",a,b,a*b);93若有界说float x; 要从键盘输入数据6.02赋给x,则应选用(D )语句.A.scanf("%8.2f",&x);B.scanf("%1.2f",&x);C.scanf("%4.2f",&x);D.scanf("%f",&x);94只能向终端输出一个字符的是( D ).A.printf()函数B.scanf()函数C.getchar()函数D.putchar()函数95若有语句 int a; char c; scanf("%3d%c",&a,&c); 为将整数135赋给a,字符'6'赋给c,正确的数据输入方式是(B ).(说明:<CR>代表换行,__代表空格)A.135__6<CR>B.1356<CR>C.135<CR>6<CR>D.135__6__96getchar()函数的功能是获取终端输入的( B ).A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式97若有界说 int a=8,b=5; 要实现输出形式为: 8*5=40 ,正确的printf()函数调用语句是( D ).A.printf("a*b=%d\n",a*b);B.printf("a*b=a*b\n");C.printf("%d*%d=a*b\n",a,b);D.printf("%d*%d=%d\n",a,b,a*b);98若有界说:char c1='A',c2='B'; 语句printf("%d+%d=%d",c1,c2,c1+c2);运行后的结果为(D ).(说明:'A'的ASCII码的十进制值为65)A.A+B=131B.65+66=ABC.A+B=ABD.65+66=131100有以下法式:main(){ int c;while((c=getchar())!= '\n'){ switch(c-'2'){ case 0 :case 1 : putchar(c+4);case 2 : putchar(c+4); break;case 3 : putchar(c+3);default: putchar(c+2); break; } }printf("\n"); } 当输入:247<回车>,法式的输出结果是( B ).A.689B.6689C.66778D.66887101若已界说 int x=5,y=9,z; 语句 z=x>=y; 运行后z的值为( C ).A.1B..t.C.0D..f.102判定逻辑值为“真”的最准确叙述是( D ).A.1B.年夜于0的数C.非0的整数D.非0的数103若已界说 int x=-16,y=-12,z; 语句z=x<=y; 运行后z的值为( B ). A..t.B.1C..f.D.0104能正确暗示数学关系式 100≤s<300的表达式为( C ).A.(s>=100) & (s<300)B.100<= s<300C.(s>=100) && (s<300)D.(s>=100) and (s<300)105若界说 int a=2,b=3; 则表达式 !a||b 的值为( B ).A.0B.1C.2D.3106若界说 int a=-5,b=-8,c=-12; 则表达式 a>=b||b<c 的值为( D ).A.变量i的值B.变量j的值C.0107下列表达式( C )不能用来判断整型变量x中的值是否为奇数.A.x%2==1B.!(x%2==0)C.!(x%2)D.x%2108若有界说:int a=3,b=2,c=3; 则值为0的表达式是( D ).A.(a-b)==(c/b)B.a>=cC.c-b||a+b&&(b*c-a-c)D.(b*c-a-c)&&(b*c-a-b)109若已界说:int x=4,y=2,z=0; 则表达式 (x-y<=y)|| (y=z)的值是( A ).A.1B.0C.2D.4110若有界说:int a=3,b=2,c=1,k; 则表达式k=a>b>c的值是( A ). A.0B.C.2D.3111以下运算符中优先级最高的是( D ).A.<=B.&&C.||D.!112执行以下语句后,b的值是( A ).int a=5,b=6,c=1,x=2,y=3,z=4;(a=c>x) || (b=y>z);A.0B.1C.-1D.6113x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( B ).A.-20<x<-5B.x>-20 && x<-5C.!(x>-20) && !(x<-5)D.-5<x<-20114若有界说:int a; 则表达式(B )不能用来判断a值为奇数是“真”,偶数是“假”.A.a%2==1B.!(a%2)C.a%2D.!(a%2==0)115若有界说:int a=1,b=2,c=3,d=4,t=2,k=2; 语句(t=a<b)||(k=c<d); 运行后,k的值为( A ).A.2B.1C.0D.-116若有界说:int x=1,y=2,z=3; 则表达式( A )的值为0.A.!((x<y) && z)B.x>y || x<zC.x<=yD.x|| (y+z && y-z)117若有界说: int a=3,b=5,c=8; 则表达式 !(a-b) || (c-b) 的值为( A ). A.1B.0C.2D.3118若有界说: int a; 且表达式 !a的值为0,则表达式( A )的值为1.A.a!=0B.a==0C.a=0D.!(a<0 || a>0)120以下法式运行后,a的值是( C ).main(){ int a,b;for(a=1,b=1;a<=100;a++){ if(b>=20) break;if(b%3==1) { b+=3; continue; }b-=5; } }A.101B.100C.8D.7121已界说 double k=3.6; 则正确的赋值表达式是( D ).A.k=double(-3.6)B.k%3C.D.k+=k-=(k=1.2)*(k=3)122已界说 char c = 'A' ; 则正确的赋值表达式是( B ).A.c=\028B.c=(c++)%4C.c+1=66D.c+=127--123已界说 int m ='A'; 则正确的表达式是( C ).A.2*m=m++B.m=int(-3.2)C.m%3D.m=m-m=m-5124设已界说 float a=2.0,b=3.0; 使a值为5.0的表达式是( A ).A.a+= bB.C.D.125若已界说 int m=7;float k=5.5; 则表达式 k+ m%2/4 的值为( D ).A.B.C.D.126若已界说int a=3,b=3,x=1,y=2; 表达式(a=y>x)&&(x=b>a) 的值是( B ).A.6B.1C.9D.0127若有界说:int a=2,b=3; float x=5; 则表达式x*b/a的值是( A ). A.B.7C.6D.5128若有界说:int x=8; float y=130;char z='A'; 则表达式x+z%(int)y的值是( C ). [已知'A'的ASCII码的十进制值为65]A.运行时发生毛病信息B.8C.73D.129若已界说:int m=7,n=4; float x=3.0,y=8.0,k; 则执行语句k=m/2+n*x/y;后,变量k的值是( C ).A.3B.4C.D.5130若有界说:float x=2,y=4,h=3; 下列表达式中与计算结果不相符的是( C ).A.(x+y)*h/2B.(x+y)*h*1/2C.(1/2)*(x+y)*hD.h/2*(x+y)131表达式2+sqrt(16.0)/4结果的数据类型是( A ).A.doubleB.intC.charD.void132若有界说:int a=4,b=5,c=6; 则表达式 (1.0*a+b)/c的值是( A ). A.B.1C.4D.133下列运算符中优先级最低的是( A ).A.=B.!C.>D.*134若有界说:float x=3.5,y=3.6; 则表达式( A )的值为6.A.(int)x+(int)yB.x+yC.(int)(x+y)D.int(x+y)135若有界说:int x; char c='A'; 则正确的赋值表达式是(A ).(说明:'A'的ASCII码的十进制值为65,'a'的ASCII码的十进制值为97)A.x=c+32B.x=c+'ABC'C.x=c+'CBA'D.x='ABC'136若有界说:float x=2,y; int a=3; 语句y=1*(x+a)/3; 运行后,y的值为( D ).A.B.0C.D.137若有界说:float x=3.5,y=5.5; 则表达式( B )的值为2.A.(x+y)%7B.(int)(x+y)%7C.int(x+y)%7D.(int)x+y%7138若有界说:int a=6,b=7,k=0,t=1; 语句 (k=a<b) && (t=a==b); 运行后,k、t的值分别是(D ).A.0 0B.1C.0 1D.1 0140以下法式段的运行结果是( D ). int x=3; do{ printf("%3d, ", x-=2 ); }while(!(--x));A.1B.30C.死循环D.1, -2141以下法式运行时,若从键盘输入6,则输出结果是(A ).void main(){int x;scanf("%d",&x);if (x-->6) printf("%d\n",x);else printf("%d\n",--x); }A.4B.5C.6D.3142以下法式的运行结果是( C ).void main(){int m,n=1,t=1;if(t== 0) t=-t;else m=n>=0?7:3;printf("%d\n",m); }A.3B.-C.7D.143对整型变量a,赋值语句 a=(a%3==0?1:0); 与(D )语句不等价.A.if (a%3= =0) a=1; else a=0;B.if (a%3!=0) a=0; else a=1;C.if (a%3) a=0; else a=1;D.if (a%3) a=1; else a=0;144以下法式运行的结果是(B ).void main(){int x,y,z,a;x=y=z=1;a=15;if(!x) a--;else if(y) ;if(z) a=3;else a+=4;printf("%d\n",a); }A.15B.3C.19D.14145若已界说 int a=1,b=2,t=3; 则执行以下法式段后变量a,b,t的值分别为(A ). if(a<b) { t=b; b=a; a=t; }A.a=2,b=1,t=2B.a=2,b=1,t=C.a=2,b=1,t=3D.a=3,b=1,t=2146以下法式段运行后变量k的值为( C ).int a=3,b=2;int k;k=(--a==b++)?a:b+1;A.0B.1C.2D.3147以下法式的运行结果是( C ).void main(){ int n=9;switch(n--){ default: printf("%d ",n++);case 8:case 7: printf("%d ",n);break;case 6: printf("%d ",n++);case 5: printf("%d ",n); } }A.8B.7C.8 9D.8 7148以下法式的运行结果是( C ).void main(){ int n=8;switch(n--){ default: printf("%d ",n++);case 8:case 6: printf("%d ",n);break;case 4: printf("%d ",n++);case 2: printf("%d ",n); } }A.8B.8 6C.7D.8 7149以下法式的运行结果是( D ).void main( ){ int a;if(a=6)printf("%d\n",a);else if(a>6) printf("%d\n",a+2);else printf("%d\n",a+3); }A.运行时发生毛病信息B.9C.8D.6150若有界说:int x=10,y=8,a; 则执行语句a=((--x==y)? x: y);后,变量a的值是( A ).A.8B.9C.10D.0151若有界说: int a=2,b=3,c=1; 则以下法式段的运行结果是( D ). if(a>b)if(a>c) printf("%d ",a);else printf("%d ",b);printf("%d ",c);A.3 1B.2C.3152以下条件语句中(其中s1和s2分别暗示C语言的语句),(D)与其他三条语句不等价.A.if(a) s1; else s2;B.if(a == 0) s2; else s1;C.if(a != 0) s1; else s2;D.if(a == 0) s1; else s2;153以下法式段运行时,若从键盘输入5,则运行结果是(D ).int a,y=10;scanf("%d",&a);if (a>10) y=a+6;printf("%d\n",y+a);A.10B.1C.16D.15154以下法式的运行结果是(B ).void main(){int a,b=2,c=6;a=3;if(a>6) a=a+b;else if(a==6) b=a+c;else a=b+c;printf("%d\n",a); }A.5B.8C.6D.9155若有界说:int x,a; 赋值语句a=(x%3==0)?0:1; 与(B )语句不等价.A.if (x%3!=0) a=1; else a=0;B.if (x%3) a=0; else a=1;C.if (x%3==0) a=0; else a=1;D.if (!(x%3==0)) a=1; else a=0;156以下法式段的运行结果是( C ).int s=15;switch(s/4){case 1: printf("One ");case 2: printf("Two ");case 3: printf("Three ");default: printf("Over "); }A.ThreeB.Two OverC.Three OverD.One Over157以下法式段的运行结果是( C ).int s=15;switch(s/4){default: printf("Over ");case 1: printf("One ");break;case 2: printf("Two "); }A.TwoB.Over TwoC.Over OneD.One158以下法式段运行后x的值为( D ). int a=3,b=6,x; x=(a==b)?a++:--b;A.4B.3C.6D.5160下列法式段中,非死循环的是( A ).A.int i=100; while(1) { i=i%100+1; if(i>=100) break; }B.int k=0; do{ ++k; }while(k>=0);C.int s=10; while(++s%2+s%2) s++;D.for(;;)161若已界说 int a; 不会发生死循环的语句是(C ).A.for( ; ;a+= 2);B.for(a=10; ;a--);C.for( ;(a=getchar())!= '\n'; );D.while(-1) {a++;}162在循环语句的循环体中,break语句的作用是( B ).A.继续执行break语句之后的循环体各语句B.提前结束循环,接着执行该循环后续的语句C.结束本次循环D.暂停法式的运行163以下法式段运行后,循环体中的 n+=3; 语句运行的次数为( A ). int i,j,n=0;for(i=1;i<=3;i++){for(j=1;j<=i;j++){n+=3; printf("%d\n",n); } }A.6次B.9次C.12次D.1次164do…while循环与while循环的主要区别是( D ).A.while循环体至少无条件执行一次,而do…while循环体可能都不执行B.do…while循环体中可使用continue语句,while循环体中不允许呈现continue语句C.do…while循环体中可使用break语句,while循环体中不允许呈现break语句D.do…while循环体至少无条件执行一次,而while循环体可能都不执行165以下法式段运行后,循环体运行的次数为( A ). int i=8,a=0;for ( ;i<8;i++)a+= i;A.0次B.1次C.8次D.无限166以下法式段运行后变量a的值为( C ).int i=1,a=0;for( ;i<3;i++){ continue; a+=i; }A.6B.3C.0D.5167有以下法式:void main(){ int i;for(i=1; i<=3; i++)switch(i){ case 1: printf("%d", i);。
c语言考试题及答案
c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言具有跨平台的特性答案:B2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列关于数组的描述中,正确的是:A. 数组必须在程序开始时初始化B. 数组的元素可以是不同的数据类型C. 数组的索引从1开始D. 数组的声明必须指定数组的大小答案:D5. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. functionD. define答案:B6. C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. &答案:A7. 下列哪个选项是C语言中合法的注释?A. // 这是一个注释B. /* 这是一个注释 */C. // 这是一个注释/* 这是一个注释 */D. /* 这是一个注释 */答案:A8. C语言中,用于定义一个空指针的值是:A. NULLB. 0C. falseD. none答案:A9. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以存储函数的地址C. 指针可以存储数组的索引D. 指针可以存储指针的地址答案:C10. 在C语言中,用于定义一个字符型指针的声明是:A. char *ptr;B. int *ptr;C. float *ptr;D. double *ptr;答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语法是:______ int array[10];。
答案:int2. 如果一个变量的值是10,那么表达式sizeof(&var)的结果是:______。
c语言题库及详解答案百度文库
c语言题库及详解答案百度文库C语言作为一门广泛应用的编程语言,其题库及详解答案在百度文库中有着丰富的资源。
以下内容将对C语言题库中的一些典型题目进行简要的介绍,并提供相应的详解答案。
1. 基础语法题- 题目:请写出一个C语言的Hello World程序。
- 解答:C语言中最基本的程序是打印"Hello World"。
以下是一个简单的示例:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 变量和数据类型题- 题目:如何声明一个整型变量并赋值?- 解答:在C语言中,声明一个整型变量并赋值可以通过以下方式实现:```cint number = 10;```3. 控制结构题- 题目:使用if语句判断一个数是否为正数。
- 解答:if语句用于条件判断,以下是一个示例代码:```cint num = 5;if (num > 0) {printf("%d is positive.\n", num);}```4. 循环结构题- 题目:使用for循环打印1到10的数字。
- 解答:for循环可以用于重复执行代码块。
以下是打印1到10的示例代码:```cfor (int i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");```5. 数组和字符串题- 题目:如何声明并初始化一个整型数组?- 解答:在C语言中,声明并初始化一个整型数组可以通过以下方式:```cint numbers[] = {1, 2, 3, 4, 5};```6. 函数题- 题目:编写一个函数,计算两个整数的和。
- 解答:函数是C语言中实现代码复用的一种方式。
以下是一个计算两个整数和的函数示例:```cint add(int a, int b) {return a + b;}```7. 指针题- 题目:使用指针交换两个变量的值。
C语言测试题(附有详细解析)
C语言测试题(附有详细解析)一、选择题1. 下面哪个选项是C语言的合法标识符?A. voidB. 2varC. intD. _temperature解析:C语言的标识符必须以字母或下划线开头,后面可以跟字母、数字或下划线。
选项A和C是C语言的关键字,不能作为标识符。
选项B以数字开头,不合法。
选项D符合标识符的规则,是正确的。
2. 在C语言中,哪个关键字用于定义整型变量?A. floatB. intC. doubleD. char解析:在C语言中,关键字`int`用于定义整型变量。
选项A 用于定义浮点型变量,选项C用于定义双精度浮点型变量,选项D用于定义字符型变量。
因此,正确答案是B。
3. 下面哪个选项是C语言中的逻辑运算符?A.++B. &&C. ||D. !=解析:C语言中的逻辑运算符包括`&&`(逻辑与)和`||`(逻辑或)。
选项A是自增运算符,选项D是不等于运算符,因此正确答案是B和C。
二、填空题4. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5;printf("%d\n", x++);return 0;}```解析:这段代码的输出是5。
在`printf`语句中,`x++`是后缀自增运算符,它先输出x的当前值5,然后x的值增加1。
因此,输出为5。
5. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5, y = 10;printf("%d\n", x > y ? x : y);return 0;}```解析:这段代码的输出是10。
条件运算符`?:`是一个三元运算符,它根据第一个表达式的值来选择第二个或第三个表达式。
在这个例子中,`x > y`是假的,所以输出是`y`的值,即10。
C语言练习题(带答案)
一、单项选择题之五兆芳芳创作1.(A)是组成C语言程序的根本单位.A、函数B、进程C、子程序D、子例程2.C语言程序从C开始执行.A)程序中第一条可执行语句 B)程序中第一个函数C)程序中的main函数 D)包含文件中的第一个函数3、以下说法中正确的是(C).A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B ).A) C程序的任务进程是编辑、编译、连接、运行B) C语言不区分大小写.C) C程序的三种根本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C).A.-a1B.a[i]C.a2_iD.int t6.下列C语言用户标识符中正当的是( B).A)3ax B)x C)case D)-e2 E)union7.下列四组选项中,正确的C语言标识符是(C).A) %xB) a+b C)a123D)1238、下列四组字符串中都可以用作C语言程序中的标识符的是(A).A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age语言中的复杂数据类型包含(D).A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是C.A)2.5 B)2 C)1 D)311.如果int a=3,b=4;则条件表达式"a<b? a:b"的值是__A__.A) 3B) 4 C) 0D) 112.若int x=2,y=3,z=4 则表达式x<z?y:z的结果是(B).A)4 B)3 C)2 D)0 E)113.C语言中,关系表达式和逻辑表达式的值是(B).A)0 B)0或1C) 1 D)‘T’或’F’14. 下面( D )表达式的值为4.A)11/3 B)C) (float)11/3 D) (int)(11.0/3+0.5)15.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为的是(B)A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)16. 若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)17. 以下对一维数组a的正确说明是:DA) char a(10);B) int a[];C)int k=5,a[k]; D)char a[3]={‘a’,’b’,’c’};18.以下能对一维数组a进行初始化的语句是: ( C )A. int a[5]=(0,1,2,3,4,)B. int a(5)={}C. int a[3]={0,1,2}D. int a{5}={10*1}19.在C语言中对一维整型数组的正确定义为D.A)int a(10); B)int n=10,a[n];C)int n;a[n]; D)#define N 10int a[N];20、已知:int a[10]; 则对a数组元素的正确引用是( D ).A、a[10]B、a[3.5]C、a(5)D、a[0]21.若有以下数组说明,则i=10;a[a[i]]元素数值是(B).int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};22.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )A. 2B. 3C. 4D.无确定值5 7 D) 36 923.对二维数组的正确定义是(C)A.int a[ ] [ ]={1,2,3,4,5,6};B.int a[2] [ ]={1,2,3,4,5,6};C.int a[ ] [3]={1,2,3,4,5,6};D.int a[2,3]={1,2,3,4,5,6}; 24.已知int a[3][4];则对数组元素引用正确的是__C___A)a[2][4] B)a[1,3] C)a[2][0] D)a(2)(1)语言中函数前往值的类型是由A决定的.A)函数定义时指定的类型 B) return语句中的表达式类型C) 调用该函数时的实参的数据类型 D) 形参的数据类型26. 在C语言中,函数的数据类型是指( A )A 函数前往值的数据类型 B. 函数形参的数据类型C 调用该函数时的实参的数据类型 D.任意指定的数据类型27. 在函数调用时,以下说法正确的是(B)A.函数调用后必须带回前往值B.实际参数和形式参数可以同名C.函数间的数据传递不成以使用全局变量D.主调函数和被调函数总是在同一个文件里28.在C语言中,暗示静态存储类此外关头字是: (C)A) auto B) register C) static D) extern29.未指定存储类此外变量,其隐含的存储类别为(A).A)auto B)static C)extern D)register30. 若有以下说明语句:struct student{ int num;char name[ ];float score;}stu;则下面的叙述不正确的是: ( D )A. struct是结构体类型的关头字B. struct student 是用户定义的结构体类型C. num, score都是结构体成员名D. stu是用户定义的结构体类型名31.若有以下说明语句:struct date{ int year;int month;int day;}brithday;则下面的叙述不正确的是__C___.A) struct是声明结构体类型时用的关头字B) struct date 是用户定义的结构体类型名C) brithday是用户定义的结构体类型名D) year,day 都是结构体成员名32.以下对结构变量stul中成员age的不法引用是Bstruct student{ int age;int num;}stu1,*p;p=&stu1;A) stu1.age B) student.age C) p->age D) (*p).age33.设有如下定义:struck sk{int a;float b;}data;int*p;若要使P指向data中的a域,正确的赋值语句是CA) p=&a;B) p=data.a;C) p=&data.a;D)*p=data.a;34.设有以下说明语句:typedef struct stu{ int a;float b;} stutype;则下面叙述中错误的是(D).A、struct是结构类型的关头字B、struct stu是用户定义的结构类型C、a和b都是结组成员名D、stutype是用户定义的结构体变量名35.语句int *p;说明了C.A)p是指向一维数组的指针B)p是指向函数的指针,该函数前往一int型数据C)p是指向int型数据的指针D)p是函数名,该函数前往一指向int型数据的指针36.下列不正确的定义是(A).A. int *p=&i,i;B.int *p,i;C.int i,*p=&i; D.int i,*p;37. 若有说明:int n=2,*p=&n,*q=p,则以下不法的赋值语句是: (D)A)p=q B)*p=*q C)n=*q D)p=n38.有语句:int a[10],;则B是对指针变量p的正确定义和初始化.A)int p=*a; B)int *p=a; C)int p=&a; D)int *p=&a;“int a[5],*p=a;”,则对数组元素的正确引用是( C ).A.a[p]B.p[a]C.*(p+2)D.p+240. 有如下程序int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;则数值为9的表达式是BA) *P+9 B) *(P+8) C) *P+=9 D) P+841.在C语言中,以D作为字符串结束标记A)’\n’ B)’’C) ’0’ D)’\0’42.下列数据中属于“字符串常量”的是(A).A.“a”B.{ABC}C.‘abc\0’D.‘a’43.已知char x[]="hello", y[]={'h','e','a','b','e'};, 则关于两个数组长度的正确描述是B .A)相同 B)x大于y C)x小于y D)以上答案都不合错误44. 下面各函数中能实现打开文件功效的是AA)fopen B) fgetcC) fputcD) fclose45. 下列语句中,把变量fp说明为一个文件型指针的是( A ) .A) FILE *fp; B) FILE fp;C) file *fp; D) file fp;46.以读写方法打开一个已有的文本文件file1,并且FILE *fp,下面fopen函数正确的调用方法是( B ).A.fp=fopen(“file1”,“r”)B.fp=fopen(“file1”,“r+”)C.fp=fopen(“file1”,“rb”)D.fp=fopen(“file1”,“w”)二、读程序根本输入输出及流程控制1.#include <stdio.h>main(){ int a=1,b=3,c=5;if (c==a+b)printf("yes\n");elseprintf("no\n");}运行结果为:no2.#include <stdio.h>main(){ int a=12, b= -34, c=56, min=0;min=a;if(min>b)min=b;if(min>c)min=c;printf("min=%d", min);}运行结果为:min=-343.#include <stdio.h>main(){ int x=2,y= -1,z=5;if(x<y)if(y<0)z=0;elsez=z+1;printf(“%d\n”,z);}运行结果为:54.#include <stdio.h>main(){ float a,b,c,t;a=3;b=7;c=1;if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c); }运行结果为:1.5.#include < stdio .h >main ( ){ float c=3.0 , d=4.0;if ( c>d ) c=5.0;elseif ( c==d ) c=6.0;else c=7.0;printf ( “%.1f\n”,c ) ;}运行结果为:6.#include <stdio.h>main(){int m;scanf("%d", &m);if (m >= 0){if (m%2 == 0)printf("%d is a positive even\n", m);elseprintf("%d is a positive odd\n", m);}else{if (m % 2 == 0) printf("%d is a negative even\n", m); else printf("%d is a negative odd\n", m);}}若键入-9,则运行结果为:-9 is a negative odd7.#include <stdio.h>main(){ int num=0;while(num<=2){ num++;printf("%d\n",num);}}运行结果为:1238.#include <stdio.h>main( ){ int sum=10,n=1;while(n<3){sum=sum-n; n++;}printf(“%d,%d”,n,sum);}运行结果为:3,79.#include <stdio.h>main(){ int num,c;scanf("%d",&num);do{c=num%10; printf("%d",c);}while((num/=10)>0);printf("\n");}从键盘输入23,则运行结果为:3210#include <stdio.h>main(){ int s=0,a=5,n;scanf("%d",&n);do{ s+=1; a=a-2; }while(a!=n);printf("%d,%d\n",s,a);}若输入的值1,运行结果为: 2,111.#include "stdio.h"main(){char c;c=getchar();while(c!='?') {putchar(c); c=getchar();} }如果从键盘输入abcde?fgh(回车)运行结果为:abcde12.#include <stdio.h>main(){ char c;while((c=getchar())!=’$’){ if(‘A’<=c&&c<=‘Z’) putchar(c);else if(‘a’<=c&&c<=‘z’) putchar(c-32); }}当输入为ab*AB%cd#CD$时,运行结果为:ABABCDCD 13.#include <stdio.h>main(){ int x, y =0;for(x=1;x<=10;x++){ if(y>=10)break;y=y+x;}printf(“%d %d”,y,x);}运行结果为:10 514.#include<stdio.h>main( ){ char ch;ch=getchar( );switch(ch){ case ‘A’ : printf(“%c”,’A’);case ‘B’ : printf(“%c”,’B’); break;default: printf(“%s\n”,”other”);} }当从键盘输入字母A时,运行结果为:AB 15.#include <stdio.h>main( ){ int a=1,b=0;scanf(“%d”,&a);switch(a){ case 1: b=1;break;case 2: b=2;break;default : b=10;}printf("%d ", b);}若键盘输入5,运行结果为:1016.#include <stdio.h>main()_{ char grade=’C’;switch(grade){ case ‘A’: printf(“90-100\n”);case ‘B’: printf(“80-90\n”);case ‘C’: printf(“70-80\n”);case ‘D’: printf(“60-70\n”); break;case ‘E’: printf(“<60\n”);default : printf(“error!\n”);}}运行结果为:70-8060-7017.#include <stdio.h>main(){ int y=9;for(;y>0;y- -)if(y%3==0){ printf(%d”,- -y);continue;}}运行结果为:85218.#include <stdio.h>main(){ int i,sum=0;i=1;do{sum=sum+i;i++;}while(i<=10); printf(“%d”,sum);}运行结果为:5519.#include <stdio.h>#define N 4main(){ int i;int x1=1,x2=2;printf("\n");for(i=1;i<=N;i++){ printf("%4d%4d",x1,x2);if(i%2==0)printf("\n");x1=x1+x2;x2=x2+x1;}}运行结果为:1 2 3 58 13 21 3420#include <stdio.h>main( ){ int x, y;for(x=30, y=0; x>=10, y<10; x--, y++) x/=2, y+=2;printf(“x=%d,y=%d\n”,x,y);}运行结果为:x=0,y=1221.#include <stdio.h>#define N 4main( ){ int i,j;for(i=1;i<=N;i++){ for(j=1;j<i;j++)printf(" ");printf("*");printf("\n");}}运行结果为:****数组1.#include <stdio.h>main(){ int i,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf(“%d%d%d”,a[2],a[5],a[8]); }运行结果为:8522.#include <stdio.h>main(){int i,a[6];for (i=0; i<6; i++)a[i]=i;for (i=5; i>=0 ; i--)printf("%3d",a[i]);}运行结果为:5 4 3 2 1 03.#include <stdio.h>main( ){ int i,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}运行结果为:214.#include <stdio.h>int m[3][3]={{1},{2},{3}};int n[3][3]={1,2 ,3};main( ){ printf(“%d,”, m[1][0]+n[0][0]); printf(“%d\n”,m[0][1]+n[1][0]); }运行结果为:3,05.#include <stdio.h>main(){int i;int x[3][3]={1,2,3,4,5,6,7,8,9};for (i=1; i<3; i++)printf("%d",x[i][3-i]);}运行结果为:6 86.#include <stdio.h>main( ){ int n[3][3], i, j;for(i=0;i<3;i++ ){for(j=0;j<3;j++ ){n[i][j]=i+j;printf(“%d ”, n[i][j]);}printf(“\n”);}}运行结果为:0 1 21 2 32 3 47.#include <stdio.h>main(){char diamond[][5]={{‘_’,’_’,’*’},{‘_‘,’*’,’_’,’*’}, {‘*’,’_’,’_‘,’_‘,’*’},{‘_’,’*’,’_’,’*’},{‘_’,’_’,’*’}}; int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%c”,diamond[i][j]);printf(“\n”);}}注:“_”代表一个空格.运行结果为:** ** ** **8.。
C语言200道练习题及答案
一维数组
题目1
题目2
题目3
题目4
求一维数组中的最大值 和最小值。
将一维数组中的元素逆 序存放。
查找一维数组中指定的 元素,并返回其下标。
求一维数组中所有元素 的和。
二维数组
题目5
题目6
求二维数组中所有元素的最大值和最小值 。
将二维数组转置,即行列互换。
题目7
题目8
查找二维数组中指定的元素,并返回其位 置。
C语言200道练习题 及答案
汇报人:XX
目录
• 基础知识练习题 • 数组与字符串练习题 • 函数与模块化练习题 • 指针与内存管理练习题 • 数据结构与算法练习题 • 综合应用练习题
01
基础知识练习题
变量与数据类型
声明整型变量并赋值
int a = 10;
声明字符型变量并赋值
char c = 'A';
代码优化
通过减少不必要的计算、消 除冗余代码等方式对代码进 行优化。
并行计算与多线程
了解并行计算和多线程的基 本概念,探索在程序中应用 并行计算和多线程技术提高 性能的可能性。
THANKS
感谢观看
掌握如何使用malloc()、calloc() 等函数在堆区动态分配内存空间
。
动态内存释放函数
了解如何使用free()函数释放之前 分配的内存空间,以避免内存泄漏 。
内存分配失败处理
熟悉在动态内存分配过程中,如何 处理分配失败的情况,如检查返回 值是否为NULL等。
05
数据结构与算法练习题
结构体与联合体
01
掌握如何定义指向函数的指针变量,以及如何通过函数指针调
用函数。
C语言考试试题及答案
C语言考试试题及答案一、选择题(每题2分,共20分)1. C语言的标识符可以由哪些字符组成?A. 数字、字母和下划线B. 数字和字母C. 数字、字母和特殊字符D. 字母和下划线2. 在C语言中,哪个关键字用于声明整型变量?A. floatB. intC. doubleD. char3. 下面哪个选项是C语言的逻辑运算符?A. &&B. ||C. >>D. ++4. 在C语言中,哪个函数用于输出字符串?A. printfB. scanfC. putcharD. puts5. 以下哪个选项是C语言的循环控制语句?A. ifB. switchC. whileD. break二、填空题(每题2分,共20分)6. 在C语言中,声明一个整型变量的关键字是______。
7. 以下程序段的输出结果是______。
```cint a = 5;printf("%d\n", a++ + ++a);```8. 在C语言中,用于定义数组的标识符是______。
9. 下面程序的输出结果是______。
```cint a = 3, b = 4;printf("%d\n", a > b ? a : b);```10. 在C语言中,用于表示整型常量的关键字是______。
三、判断题(每题2分,共20分)11. C语言中的变量在使用前必须先声明。
()12. 在C语言中,数组的下标从0开始。
()13. C语言的switch语句中,case后面必须跟一个break语句。
()14. 在C语言中,逗号运算符的优先级最高。
()15. C语言的函数可以没有返回值。
()四、编程题(每题20分,共40分)16. 编写一个C程序,实现以下功能:输入10个整数,计算并输出它们的平均值。
17. 编写一个C程序,实现以下功能:输入一个字符串,将其中的小写字母转换为大写字母,大写字母转换为小写字母,并输出结果。
C语言综合练习(附答案)
C语言综合练习(附答案)一、选择1.在C语言中运算对象必须是整型的运算符是A %B !C /D *2. 有以下程序#includemain(){int x;scanf(“%d”,&x);if(x<=3);else if(x!=10)printf(“%d\n”,x);}程序运行时,输入的值在哪个范围才会有输出结果____________ 。
A)不等于10的整数 B)大于3且不等于10的整数C) 大于3或等于10的整数 D)小于3的整数3. 下列定义数组的语句中,正确的是__________。
A)int N=10;int x[N]; B)#define N 10int x[N];C) int x[0..10]; D) int x[];4. 以下程序运行后的输出结果是_______________。
#includemain(){int m=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%d\n”,m,n,*p,*q);}A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,25. C语句x*=y+2;还可以写成A x=x*y+2;B x=2+y*x;C x=x*(y+2);D x=y+2*x;6. 以下程序运行后的输出结果是________________。
#includemain(){int a=1,b=0;if(!a) b++;else if(a==0) if(a) b+=2;else b+=3;printf(“%d\n”,b)}A)0 B)1 C)2 D)37. 若要定义一个具有5个元素的整形数组,以下错误的定义语句是__________。
A)int a[5]={0}; B)int b[] = {0,0,0,0,0};C) int c[2+3] ; D)int i=5,d[i];8. 设有float x;则x是____变量。
(完整版)C语言考试题库及答案
(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。
()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。
()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。
()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。
答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。
答案:911. 在C语言中,用于动态分配内存的函数是______。
答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。
答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。
答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
c语言考试题及答案以及解析
c语言考试题及答案以及解析一、选择题1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. string答案:A解析:在C语言中,关键字是保留的词汇,用于表示特定的语法结构。
int是C语言中用于声明整型变量的关键字。
2. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C解析:在C语言中,乘法运算符是星号(*),用于计算两个数的乘积。
二、填空题1. 在C语言中,以下代码片段的输出结果是:```cint main() {int a = 5;printf("%d", a);return 0;}```输出结果为:_________答案:5解析:代码中的printf函数用于输出变量a的值,a被初始化为5,因此输出结果为5。
2. 下列代码段中,变量b的值是多少?```cint main() {int a = 10, b;b = a + 5;printf("%d", b);return 0;}```变量b的值为:_________答案:15解析:变量b被赋值为变量a加上5,由于a的值为10,所以b的值为15。
三、简答题1. 简述C语言中的数组是什么,并给出一个数组的声明和初始化的例子。
答案:C语言中的数组是一种数据结构,用于存储相同类型的多个元素。
数组的声明需要指定元素的类型和数组的长度。
数组的初始化可以在声明时完成。
解析:例如,声明一个整型数组并初始化:```cint numbers[5] = {1, 2, 3, 4, 5};```2. 解释C语言中的函数是什么,并给出一个简单函数的定义和调用的例子。
答案:C语言中的函数是一段具有特定功能的代码块,可以接收参数,并返回一个值。
函数的定义包括函数的返回类型、名称、参数列表和函数体。
函数的调用是使用函数名称和必要的参数来执行函数。
解析:例如,定义一个函数来计算两个数的和,并调用它:```cint add(int x, int y) {return x + y;}int main() {int result = add(5, 10);printf("%d", result);return 0;}```四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
C语言练习题及答案
C语言练习题及答案综合强化练习一一、选择题(每题1分,共40分)1、以下叙述正确的是( )A)C语言总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main函数中定义C)C程序的执行总是从main函数开始执行的D)C程序中的main函数必须放在程序的开始部分2、下列合法的用户标识符为( )A)_4sum B) static C) 1max D) #dtotal3、ch为字符型变量,则下面赋值语句正确的为( )。
A)ch="ABC" B) ch="A" C) ch= a D) ch=674、C语言中整形常量有哪几种形式( )A) 十进制、八进制、十六进制B) 二进制、十进制、八进制、十六进制C) 二进制、八进制、十六进制D) 二进制、十进制5、字符串" China "在内存中占用的字节数是( )A) 1 B) 2 C) 5 D) 66、int x,y; x=7/2;y=7/2.0;则x的值为( )A) 3.500000 3 B) 3 3.500000C) 3.500000 3.500000 D)3 37、下面程序int x=0x2B; printf("%d",x);的输出结果为( )A) 2B B) 0x2B C) 43 D) 448、实型常量用指数形式表示,下列哪一项不是合法的( )A) 3.65e3 B)0.356E3 C)356e3 D)3.56e3.09、设有语句int a=3;则执行了语句a-= a+=a*a;后变量a的值是( )A)0 B)3 C) -9 D) -310、下列字符中,错误的转义字符是( )A)'\085' B) '\\' C) '\0' D) '\n '11、下面程序的输出结果是( )int a=2;if(a=5) a=a+2;printf("%d ",a);A) 2 B) 4 C) 5 D)712、下列程序段的循环次数是( )int k=0;while(k= =0) printf("%d",k);k--; printf ("\n");A) 无限次B) 0 次C) 1次D)2次13、下列说法正确的是( )A) 在循环体中可以用break语句结束本次循环B) 在循环体中可以用continue语句结束本次循环C) break语句仅能使用在switch结构中D) 可以使用continue语句跳出switch结构14、以下正确的函数形式是()。
c语言考试试题及答案
c语言考试试题及答案C语言考试试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言的关键字?A. voidB. StringC. intD. array答案:A2. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C3. 在C语言中,以下哪个是正确的字符串定义?A. char str[10] = "Hello";B. string str = "Hello";C. char str[] = "Hello";D. string str[10] = "Hello";答案:A4. 下列哪个选项是C语言中数组的正确声明方式?A. int array[10];B. int array(10);C. int array = 10;D. int array = {10};答案:A5. 在C语言中,哪个函数用于计算两个数的最大值?A. max()B. min()C. abs()D. pow()答案:A6. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. %D. /答案:A7. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C8. C语言中,以下哪个语句用于结束一个循环?A. continue;B. break;C. return;D. exit;答案:B9. 在C语言中,哪个函数用于打印输出?A. printf()B. print()C. display()D. show()答案:A10. 以下哪个选项是C语言中正确的条件语句?A. if (x = 10)B. if (x == 10)C. if (x : 10)D. if (x / 10)答案:B二、填空题(每空2分,共20分)1. C语言中,用于定义变量的关键字是________。
C语言试题(答案带解析)
C语言试题(答案带解析)题目:编写一个C语言程序,实现以下功能:1. 输入一个字符串,长度不超过100个字符。
2. 统计并输出字符串中字母、数字、空格和其他字符的数量。
3. 删除字符串中所有的空格,并输出处理后的字符串。
4. 查找字符串中第一次出现字母 'a' 的位置,并输出位置(位置从0开始计算)。
5. 检查字符串是否为回文(忽略大小写和空格),如果是,输出"Yes",否则输出"No"。
试题代码如下:```c#include <stdio.h>#include <string.h>#include <ctype.h>int main() {char str[101];int alpha_count = 0, digit_count = 0,space_count = 0, other_count = 0;int i, a_position = -1;int len, is_palindrome = 1;// 输入字符串printf("Enter a string (up to 100 characters): ");fgets(str, 101, stdin);// 删除换行符len = strlen(str);if (str[len - 1] == '\n') {str[len - 1] = '\0';len--;}// 统计字符数量for (i = 0; i < len; i++) {if (isalpha(str[i])) {alpha_count++;if (str[i] == 'a') {a_position = i;}} else if (isdigit(str[i])) {digit_count++;} else if (isspace(str[i])) {space_count++;} else {other_count++;}}// 输出字符数量printf("Letters: %d\n", alpha_count); printf("Digits: %d\n", digit_count); printf("Spaces: %d\n", space_count); printf("Others: %d\n", other_count); // 删除空格并输出处理后的字符串char new_str[101];int j = 0;for (i = 0; i < len; i++) {if (!isspace(str[i])) {new_str[j++] = str[i];}}new_str[j] = '\0';printf("String without spaces: %s\n", new_str);// 查找字母 'a' 的位置if (a_position != -1) {printf("First occurrence of 'a' is at position: %d\n", a_position);} else {printf("'a' not found in the string.\n");}// 检查字符串是否为回文int start = 0, end = j - 1;while (start < end) {if (tolower(new_str[start]) !=tolower(new_str[end])) {is_palindrome = 0;break;}start++;end--;}if (is_palindrome) {printf("Yes\n");} else {printf("No\n");}return 0;}```解析:1. 程序首先通过 `fgets` 函数读取用户输入的字符串,并检查是否有多余的换行符。
C语言考试题库及答案
C语言考试题库及答案一、选择题1. C语言中,以下哪个选项是合法的数据类型?A. intB. floatC. charD. All of the above答案:D2. 在C语言中,哪个关键字用于定义整型变量?A. floatB. doubleC. intD. char答案:C3. 下面哪个选项不是C语言的逻辑运算符?A. &&B. ||C. !D. ++答案:D4. 在C语言中,哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个关键字用于定义结构体?A. structB. unionC. enumD. class答案:A二、填空题6. 在C语言中,用于声明函数原型的是______。
答案:函数原型7. 在C语言中,用于输入输出函数的是______。
答案:stdio.h8. 在C语言中,用于定义常量的是______。
答案:#define 或 const9. 在C语言中,用于定义指针的是______。
答案:(星号)10. 在C语言中,用于终止当前循环的是______。
答案:break三、判断题11. C语言中的数组下标是从1开始的。
()答案:错误12. 在C语言中,switch语句可以替代if-else语句。
()答案:正确13. 在C语言中,所有的变量在使用前必须声明。
()答案:正确14. C语言中的结构体是一种用户自定义的数据类型。
()答案:正确15. 在C语言中,函数的返回值类型不能是数组。
()答案:正确四、编程题16. 编写一个C程序,输出1到100之间所有的偶数。
```c#include <stdio.h>int main() {int i;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {printf("%d\n", i);}}return 0;}```17. 编写一个C程序,计算并输出斐波那契数列的前10项。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3
B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3
C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D) 由于p和q数组中都没有字符串结束符,故长度都不能确定
else if(y>z) f(x,z);
else f(x,z);
printf("%d,%d,%d\n",x,y,z);
}
A)1,2,3B) 3,1,2C) 1,3,2D) 2,3,1
25有以下程序
#include <stdio.h>
int f(int x)
{ int y;
if(x==0||x==1) return(3);
int *f(int *x, int *y)
{
if(*x<*y)return x;
elsereturn y;
}
main()
{
int a=7,b=8,*p,*q,*r;
p=&a, q=&b;
r=f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
}
A)7,8,8B) 7,8,7C) 8,7,7D) 8,7,8
y=x*x-f(x-2);
return y; }
main()
{ int z;
z=f(3);
printf("%d\n",z); }
程序的运行结果是【C】
A)0B)9C)6D)8
26.有以下程序
void ss(char *s,char t)
{ while(*s)
{ if(*s==t)*s=t-′a′+′A′;
18.若用数组名作为函数调用的实参,则传递给形参的是【A】。
A)数组的首地址B)数组的第一个元素的值
C)数组中全部元素的值D)数组元素的个数
19若函数调用时,用数组名作为函数的参数,以下叙述中正确的是【A】。
A)实参与其对应的形参共用同一段存储空间
B)实参与其对应的形参占用相同的存储空间
C)实参将其地址传递给形参,同时形参也会将该地址传递给实参
C语言练习题
一、选择题
1.一个完整的C源程序是【B】。
A)要由一个主函数或一个以上的非主函数构成
B)由一个且仅由一个主函数和零个以上的非主函数构成
C)要由一个主函数和一个以上的非主函数构成
D)由一个且只有一个主函数或多个非主函数构成
2.以下关于函数的叙述中正确的是【C】。
A)C语言程序将从源程序中第一个函数开始执行
printf("%d\n",x);
}
程序执行时,若输入10,程序的输出结果是【A】。
A)55B)54C)65D)45
29.下面是一个计算1至m的阶乘并依次输出的程序。程序中应填入的正确选项是【D】。
#include<stdio.h>
double result=1;
factorial( int j)
{
s++; } }
main()
{ char str1[100]="abcddfefdbd",c=′d′;
ss(str1,c);
printf("%s\n",str1);}
程序运行后的输出结果是【B】
A)ABCDDEFEDBDB)abcDDfefDbD
C)abcAAfefAbAD)Abcddfefdbd
26以下程序运行后的输出结果为【B】。
i=n1; j=n2;
while(i<j)
{t=s[i];s[i]=s[j];s[j]=t;i++;j--;} }
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,0},k;
fun(a,0,3); fun(a,4,9); fun(a,0,9);
for(k=0;k<l0;k++)
result=result*j;
return;
}
main()
{
int m,i=0,x;
printf("Please enter an integer:");
scanf("%d",&m);
for(;i++<m;)
{
x=factorial(i);
printf("%d!=%.0f\n",【】);
}
}
A)i,factorial(i)B)i,xC)j,xD)i,result
26.在C语言程序中,当调用函数时【B】
A)实参和形参共用一个存储空间
B)实参和形参各占一个独立的存储空间
C)由用户指定实参和形参是否共用存储空间
D)由系统确定实参和形参是否共用存储空间
27.关于以下fun函数的功能叙述中,正确的是【A】。
intfun(char*s)
{
char*t=s;
while(*t++) ;
A)char a[]={′t′,′o′,′y′,′o′,′u′,′\0′}; B)char a[]={"toyou\0"};
C)char a[]="toyou\0"; D)char a[]=′toyou\0′;
15.char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是
A)return语句中的表达式类型
B)调用函数的主调函数类型
C)调用函数时临时
D)定义函数时所指定的函数类型
22.有以下程序
#include<string.h>
main()
{ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};
printf("%d%d\n",strlen(p),strlen(q));}
D)实参将数据传递给形参后,立即释放原先占用的存储单元
16.函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【D】。
A)实参将其地址传递给形参,并释放原先占用的存储单元
B)实参将其地址传递给形参,调用结束时形参再将其地址回传给实参
C)实参将其值传递给形参,调用结束时形参再将其值回传给实参
30.下面程序段的运行结果是【D】
char *s="abcde";
s+=2;printf("%d",s);
A)cdeB)字符′c′C)字符′c′的地址D)无确定的输出结果
31.有以下程序
#include <stdio.h>
void fun(int *s,int n1,int n2)
{ int i,j,t;
B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D)main可作为用户标识符,用以定义任意一个函数
3.以下关于函数的叙述中不正确的是【B】。
A)C程序是函数的集合,包括标准库函数和用户自定义函数
B)在C语言程序中,被调用的函数必须在main函数中定义
C)在C语言程序中,函数的定义不能嵌套
D)在C语言程序中,函数的调用可以嵌套
4.在一个C程序中,【B】。
A)main函数必须出现在所有函数之前
B)main函数可以在任何地方出现
C)main函数必须出现在所有函数之后
D)main函数必须出现在固定位置
5.C程序的执行是从【A】开始的。
A)主函数
B)子函数
23定义一个void型函数意味着调用该函数时,函数【C】
A)通过return返回一个用户所希望的函数值
B)返回一个系统默认值
C)没有返回值
D)返回一个不确定的值
24.若定义函数float *fun( ),则函数fun的返回值为【B】。
A)一个实数B)一个指向实型变量的指针
C)一个指向实型函数的指针D)一个实型函数的入口地址
D)实参将其值传递给形参,调用结束时形参并不将其值回传给实参
17.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是【D】。
A)函数的实参和其对应的形参共占同一存储单元
B)形参只是形式上的存在,不占用具体存储单元
C)同名的实参和形参占同一存储单元
D)函数的形参和实参分别占用不同的存储单元
25.下列数组说明中,正确的是【D】
A)static char str[]="China";
B)static char str[]; str="China";
C)static char str1[5],str2[]={"China"}; str1=str2;
D)static char str1[],str2[];str2={"China"}; strcpy(str1,str2);
i+=m+1;
m=i+a+b;
return(m);
}
A)8,17B)8,16C)8,20D)8,8
28.有以下程序
int fun(int n)
{
if(n==1)return 1;
elsereturБайду номын сангаас(n+fun(n-1));
}
main()
{
int x;