c语言考试题
- 格式:doc
- 大小:46.00 KB
- 文档页数:3
《C语言》考卷一单选题(每题2分,共25题,共50分)1.要把高级语言编写的源程序转换为目标程序,需要使用( )[2分][2分]A.编辑程序B.驱动程序C.诊断程序D.编译程序参考答案:D2.以下叙述中正确的是( )[2分][2分]A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D.main可作为用户标识符,用以命名任意一个函数作为主函数参考答案:C3.若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是( )[2分][2分] int a int a=66 = 65 + 1.6 =66.6A.a的值是字符BB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符‘A’的ASCII值加上2参考答案:Aint a = ‘A’;char b = 65;4.若变量已正确定义并赋值,以下符合C语言语法的表达式是( )[2分][2分]A.a:=b+1B.a=b=c+2C.18.5%3D.a=a+7=c+b参考答案:B5.下列可用于C语言用户标识符的一组是( )[2分][2分]A.void, define, WORDB.a3_b3, _123,carC.For, -abc, IF CaseD.2a, DO, sizeof参考答案:B6.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( )[2分][2分]A.scanf("%d",a,b,c);B.scanf("%d%d%d",a,b,c);C.scanf("%d",p); //scanf(“%d”,&c);D.scanf("%d",&p);参考答案:C7.以下关于long、int和short类型数据占用内存大小的叙述中正确的是( )[2分][2分]A.均占4个字节B.根据数据的大小来决定所占内存的字节数 // long a = 1 int b = 1000000C.由用户自己定义D.由C语言编译系统决定参考答案:D8.若变量已正确定义,有以下程序段i=0;do{printf("%d,",i); //0}while(i++); //while(0) i=1printf("%d\n",i); //1其输出结果是( )[2分][2分]A.0,0B.0,1C.1,1D.程序进入无限循环参考答案:B9.有以下计算公式则不能够正确计算上述公式的程序段是( )(提示:库函数sqrt()用来求一个数的平方根)[2分][2分]A.if(x>=0) y=sqrt(x); else y=sqrt(-x); //if/else配合使用B.y=sqrt(x) if(x<0) y=sqrt(-x);C.if(x>=0)y=sqrt(x); if(x<0)y=sqrt(-x); //if单独使用D.y=sqrt(x>=0?x:-x);参考答案:B10.设有条件表达式:EXP ? i++ : j--;则以下表达式与之完全等价的是( )[2分][2分]A.(EXP==0)? i++ : j--;B.(EXP!=0)? i++ : j--;C.(EXP==1)? i++ : j--;D.(EXP!=1)? i++ : j--;参考答案:B11.有以下程序#include<stdio.h>int main(void){int y=9;for( ; y>0; y--){if(y%3 == 0)printf("%d",--y);}}程序的运行结果是( )[2分][2分]A.741B.963C.852D.875421参考答案:C12.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( )[2分][2分]A.函数的实参和其对应的形参共占同一存储单元B.形参只是形式上的存在,不占用具体存储单元 //局部变量C.同名的实参和形参占同一存储单元D.函数的形参和实参分别占用不同的存储单元参考答案:D13.已知字符‘A’的ASCⅡ代码值是65,字符变量c1的值是‘A’,c2的值是‘D’。
试题一(一)选择题1.以下叙述中正确的是()。
构成C程序的基本单位是函数2.如果int a=2,b=3,c=0,下列描述正确的是。
!a!=(b!=c)表达式的值为13.sizeof(float)是()。
一个整形表达式4.设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。
-2645.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。
6int x=1,y=2,z=3;6.若变量a与i已正确定义,且i已正确赋值,合法的语句是()。
++i7.若以下变量均是整型,且num=sum=7;则计算表达式sum=num++,8.sum++,++num后sum的值为()。
89.C语言中不合法的字符串量是。
‘y=‟10.下列关于单目运算符++、--的叙述中正确的是______。
它们的运算对象可以是char型变量和float型变量11.整型变量x=1,y=3,经下列计算后,x的值不等于6的是。
X=9-(--y)-(y--)12.假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b的值是()。
813.下列程序的输出结果是()。
0void main(){int a=7,b=5;printf("%d\n",b=b/a);14.以下程序的执行结果是________.4main(){ int w = 1, x = 2, y = 3, z = 4;w =( w < x ) ? x : w;w =( w < y ) ? y : w;w =( w < z ) ? z : w;printf( "%d " , w );}15.假定所有变量均已正确定义,下列程序段运行后x的值是()。
4k1=1;k2=2;k3=3;x=15;if(!k1) x--;else if(k2) x=4;16.下列程序的输出结果是()。
C语言考试题一、单项选择题(每题2分,共40分)1、一个算法应该具有“确定性”等五个特性,下面对另外4个特性的描述中错误的是(B)A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性2、C语言中最简单的数据类型包括(B)A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型3、设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)A、 6.500000B、 6C、 5.500000D、 6.0000004、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);5、设 int x=1, y=1; 表达式(!x||y--)的值是(B)。
A、0B、1C、2D、-16、对两个字符数组a和b进行初始化char a[]="ABCDEF";char b[ ]={'A','B','C','D','E','F'}; 则以下叙述正确的是(D)。
A、a与b数组完全相同B、a与b长度相同C、a和b中都存放字符串D、a数组比b数组长度长7、为了避免在嵌套的条件语句if――else中产生二义性,c语言规定:else子句总是与(B)配对。
A、缩排位置相同的ifB、其之前最近的ifC、其之后最近的ifD、同一行上的if8、下面不正确的字符串常量是(A)A、 'abc'B、 "12'12"C、 "0"D、 " "9、以下错误的if语句是(C)。
C语言试题库(完整版)C语言试题库一、单项选择第一章 C语言概述1) 一个C程序的执行是从本程序的MAIN函数开始,到MAIN函数结束。
2) 以下叙述正确的是:一个C源程序可由一个或多个函数组成。
3) C语言规定,在一个源程序中,MAIN主函数的位置可以在任意位置。
4) 一个C程序是由函数组成。
5) 以下叙述不正确的是:在C程序中,注释说明只能位于一条语句的后面。
第二章数据类型、运算符与表达式1) 若x。
i。
j。
k都是int型变量,则计算下面表达式后,x的值为x=52.2) 下列四组选项中,均不是C语言键字的选项是:define。
IF。
type。
3) 下面四个选项中,均是不合法的用户标识符的选项是:1a0.b-a。
XXX。
4) 若有代数式3ae/bc,则正确的C语言表达式是:3*a*e/b*c。
5) 已知各变量的类型说明如下:int k。
a。
b。
unsigned long w=5.double x=1.42.则以下不符合C语言语法的表达式是:x%(-3)。
第三章简单C程序设计C语言试题库一、单项选择第一章 C语言概述1.一个C程序的执行是从本程序的MAIN函数开始,到MAIN函数结束。
2.以下叙述正确的是:一个C源程序可由一个或多个函数组成。
3.C语言规定,在一个源程序中,MAIN主函数的位置可以在任意位置。
4.一个C程序是由函数组成。
5.以下叙述不正确的是:在C程序中,注释说明只能位于一条语句的后面。
第二章数据类型、运算符与表达式1.若x。
i。
j。
k都是int型变量,则计算下面表达式后,x的值为x=52.2.下列四组选项中,均不是C语言关键字的选项是:define。
IF。
type。
3.下面四个选项中,均是不合法的用户标识符的选项是:1a0.b-a。
XXX。
4.若有代数式3ae/bc,则正确的C语言表达式是:3*a*e/b*c。
5.已知各变量的类型说明如下:int k。
a。
b。
unsignedlong w=5.double x=1.42.则以下不符合C语言语法的表达式是:x%(-3)。
c语言的考试题目答案及解析1. 题目:以下哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C解析:在C语言中,变量名必须以字母或下划线开头,不能以数字开头。
因此,选项A和D是不合法的。
选项B虽然以字母开头,但是数字紧跟字母,没有下划线或空格分隔,所以也是不合法的。
选项C 以下划线开头,符合变量命名规则。
2. 题目:以下哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"D. "Hello, World!"答案:A解析:在C语言中,字符串字面量应该用双引号括起来。
选项B使用了单引号,这是用于字符字面量的,而不是字符串。
选项C和D是重复的,并且由于格式问题,它们可能没有正确显示,但假设它们是正确的字符串字面量,那么答案应该是A,因为它是第一个出现的合法字符串字面量。
3. 题目:以下哪个选项是C语言中正确的函数声明?A. int function(int x) {}B. void function() {}C. int function(int x, int y) {}D. All of the above答案:D解析:在C语言中,函数声明可以包含参数列表,也可以没有参数。
选项A和C都包含了参数列表,并且参数类型是int,这是合法的。
选项B没有参数列表,并且指定了返回类型为void,这也是合法的。
因此,所有选项都是正确的函数声明。
4. 题目:以下哪个选项是C语言中正确的条件语句?A. if (x > 0) { ... }B. if x > 0 { ... }C. if (x > 0) { ... } else { ... }D. if (x > 0) { ... } elseif { ... }答案:C解析:在C语言中,条件语句必须使用if关键字,并且条件表达式需要用括号括起来。
大学C语言考试题库第1章 C语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。
A. AB. BC. DD. E(2) 在 C 语言中,每个语句必须以 D 结束。
A. 回车符B. 冒号C. 逗号D. 分号(3) 标识符和关键字间,要用 C 隔开。
A. 回车符B. 冒号C. 空格D. 分号(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D.自动保存源文件(5) 下列说法中正确的是( B )。
A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是( A )。
A. C 语言程序由主函数和 0 个或多个函数组成B. C 语言程序由主程序和子程序组成C. C 语言程序由子程序组成D. C 语言程序由过程组成(7) 下列说法中错误的是( D )。
A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C 语言只有 32 个关键字和 9 种控制语句。
(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
(4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。
(5) C 语言的程序中有特殊含义的英语单词称为保留字。
(6) C 语言标识符的长度是前 8 位有效。
(7) 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程序题库一填空题,1,C语言表达式!(3<6)||(4<9)的值是【1】;2,假设变量a,b均为整形,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是【8】;3,当a=3,b=2,c=1;时,执行以下程序段后c=【2】;If(a>b) a=b;If(b>c) b=c;Else c=b;C=a;4,已知 i=5,写出语句i*=i+1;执行后整形变量i 的值是【30】;5,按内存排列顺序,数组char a[2]中的所有元素是a[1]和【a[0]】二判断1,C语言中只能逐个引用数组元素而不能一次引用整个数组 Y2,int i=20;switch(i/10){case2:printf(“A”);Case 1:printf(“B”);}的输出结果为 A N3,在C中,int定义的整形数据在内存中占2个字节。
N4,假设有int a[10], *p; 则p=&a[0]与p=a等价。
Y5,共同体变量所占的内存长度等于最长的成员的长度。
Y三选择题1,数组名作为实参数传递给函数时,数组名被处理为(C)A 该数组的长度B 该数组的元素个数C 该数组的首地址D 该数组中各元素的值2,若调用一个函数,且此函数中没有return语5,已定义两个字符数组a,b,则以下正确的输入格式是(A)A scanf(“%s%s”, a, b)B get(a, b)C scanf(“%s%s”, &a, &b)D gets(“a”), gets(“b”)6,若给定条件表达式(M)?(a++):(a--),则其中表达式M(C)A 和(M==0)等价B 和(M==1)等价C 和(M!=0)等价D 和(M!=1)等价7,以下函数类型是(C)Fff(float x){Return 5;}A 与参数x的类型相同B void 类型C int 类型D 无法确定8,以下不正确的if语句是(B)A if(x>y && x!=y)B if(x==y:) x+=yC if(x!=y)scanf(“%d”, &x ) else scanf(“%d”, &y)D if(x<y) {x++, y++}9,指针变量p进行自动加算(即执行p++;)后,地址偏移值为2,则其数据类型为(A)A intB floatC doubleD char10,在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的表达式是(C)A (!E==0)B (E>0||E<0)C (E==0)D (E!=0)11,下列程序的输出结果是(B)main ( ){Printf ( “%d\n” ,n )}A 0B 变量无定义C -1D 112,以下选型中,与k=n++完全等价的表达式是(A)A k=n, n=n+1B n=n+1, k=nC k=++nD k+=n+113,以下程序段的输出结果为(D)char c [ ]=”abc” ;int i=0 ;do ; while ( c[ i++ ]!=’ \0’ ) ; printf ( “%d”, i-1 ) ;A abcB abC 2D 314,下列程序段的输出结果为(B)float k=0.8567printf ( “%06.1f%%” ,k*100 );A 0085.6%%B 0085.7%C 0085.6%D .85715,下列选项中正确的语句组是(D)A char s[ 8 ]; s={ “Beijing” };B char *s; s={ “Beijing” };C char s[ 8 ] ; s=”Beijing” ;D char *s ; s=”Beijing” ;16,已知字符a的ASCII码值是97,字符A的ASCII码值是65,则执行下列语句后变量a和b 的值分别为(B)int a, b ;a=1+’ a ‘ ;b=2+7%4- ‘ A ‘ ;A -63, -64B 98, -60C 1, -60D 79, 7817, 若使用一维数组名作函数实参,则以下正确的说法是(A)A 必须在主调函数中说明此数组的大小B 实参数组类型与形参数组类型可以不匹配C 在被调用函数中,不需要考虑形参数组的大小D 实参数组名与形参数组名必须保持一致18,若有说明:int i, j=2, *p=&i; ,则能完成i=j赋值功能的语句是(B)A i=*p ;B *p=*&j ;C i=&j ;D i=**p ;19,若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是(D)A 函数调用可以作为独立的语句存在B 函数调用可以作为一个函数的实参C 函数调用可以出现在表达式中D 函数调用可以作为一个函数的形参20,若a=-14, b=3, 则条件表达式 a<b ? a :b+1的值为(A)A -14B -13C 3D 4一填空题1,已知 i=5,写出语句 a=a++; 执行后整形变量a的值是【5】2,int x=2,y=2,z=0; 则表达式x==y>z的值为【0】3,假设所有变量都为整形,表达式(a=2, b=5, a>b?a++:b++,a+b)的值是【8】4,设k=(a=2,b=3,a*b),则k的值为【6】5,int a=1,b=2,c=3;执行语句a += b *= c;后a的值是【7】二判断题1,int a[ 3 ][ 4 ]={ {1}, {5}, {9} }:它的作用是将数组各行第一列的元素赋初值,其余元素值为0.2,循环结构中的continue语句是使整个循环终止执行 N3,C程序中有调用关系的所有函数必须放在同一个源程序文件中 N4,char c[ ]=”Very Good”: 是一个合法的为字符串数组赋值的语句 Y5,函数strlen(“ASDFG\n”)的值是7 N三选择题1.char h, *s=&h;可将字符H通过指针存入变量h中的语句是(B)A *s=HB *s=’H’C s=HD s=’H’2,应用缓冲文件系统对文件进行读写操作,打开文件的函数名为(B)A openB fopenC closeD fclose3,对结构体类型的变量的成员的访问,无论数据类型如何都可使用的运算符是(A)A .B ->C *D &4,若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(A)A 2.500000B 2.750000C 3.500000D 0.0000005,下列定义数组中的语句不正确的是(D)A static int a[ 2 ][ 3 ]={ 1,2,3,4,5,6 }B static int a[ 2 ][ 3 ]={ {1},{4,5} }C static int a[ ] [ 3 ]={ {1},{4} }D static int a[ ] [ ]={ {1,2,3},{4,5,6} } 6,下列变量说明语句中,正确的是(D)A char : a b cB char a; b; cC int x; zD int x, z7,关于return语句,下列正确的说法是(C)A 不能在主函数中出现且在其他函数中均可出现B 必须在每个函数中出现C 可以在同一个函数中出现多次D 只能在除主函数之外的函数中出现一次8,以下可作为函数fopen中第一个参数的正确格式是(D)A c : user\text . txtB c : \user\text . txtC “c : \user\text . txt”D “c : \\user\\text . txt”9,若所有变量均为整形,则表达式(a=2,b=5,b++,a+b)的值是(B)A 7B 8C 6D 210,为表示“x大于等于y,y大于等于z”,应使用C语言表达式(A)A (x>=Y)&&(Y>=z)B (x>=Y)AND(y>=z)C (x>=Y>=z)D (x>=Y)&(Y>=z)11,执行以下程序段后,输出结果和a的值是(B) Int a=10;printf(“%d”,a++);A 10和 10B 10和 11C 11和 10D 11和 1112,若有int i=3, *p;p=&i ; 下列语句中输出结果为3的是(C)A printf (“%d”, &p )B printf (“%d”, *i )C printf (“%d”, *p )D printf (“%d”, p )13,C语言规定,在一个源程序中,main函数的位置(C)A 必须在最开始B 必须在系统调用的库函数的后面C 可以任意D 必须在最后14,C语言中的文件的储存方式有(C)A 只能顺序存取B 只能随机存取(或直接存取)C 可以顺序存取,也可随机存取D 只能从文件的开头进行存取15;以下read函数的调用形式中,参数类型正确的是(A)A read (int fd, char *buf, int count)B read(int *buf, int fd, int count)C read(int fd, int count, char *buf)D read(int count, char *buf, int fd ) 16,以下标识符中,不能作为合法的C用户定义标识符的是(D)A ForB PrintfC WORDD sizeof17,条件运算符的结合方式是(A)A 自右自左B 自左至右C 任意D 前后顺序18,若有说明:int a[ 3 ][ 4 ]={ 0 };则下面正确的叙述是(D)A 只有元素a[ 0 ][ 0 ]可得到初值0B 此说明语句不正确C 数组a中各元素都可得到初值,但其值不一定为0D 数组a中每个元素均可得到初值019,设有以下定义:struct sk { int a; floatb; } data, *p; 若要使p指向data中的a域,正确的赋值语句是(A)A p=( struct sk* )&data. a;B p=( struct sk ) data. a;C p=&data. a;D *p=data. a;20,下列运算符中是C语言关系运算符的是(D)A ~B !C &D !=一填空题1,C语言的三种基本结构是【顺序】结构、选择结构、循环结构2,设有以下定义语句:Int a[ 3 ] [ 2 ]={ 10, 20, 30, 40, 50, 60 },( *p ) [ 2 ];p=a;则 *(*(p+2)+1)值为【60】3,当a=1, b=2, c=3时,执行以下程序段后c=【2】if ( a>c ) b=a;a=c;c=b;4,int x=2, y=3, z=4, 则表达式x+( y>! z )的值为【3】5,设C语言中,int类型数据占2个字节,则long类型数据占【4】个字节,Short类型数据占【2】个字节二判断题1,一个include命令可以指定多个被包含的文件 N2,#define和printf都不是C语句Y3,x*=y+8等价于x=x*( y+8 ) Y4,若有定义和语句:int a; char c; float f;scanf( “%d, %c, %f”, &a,&c,&f );若通过键盘输入:10,A,12.5,则a=10, c=’A’, f=12.5 Y5,a=( b=4 )+( c=6 )是一个合法的赋值表达式Y三选择题1,已知字母a的ASCII十进制代码为97,则执行下列语句后输出的结果为(C)char a=’a’ ; a--;Printf ( “%d,%c\n”,a+’2’-’0’,a+’3’-’0’ );A b, cB a--运算不合法,故有语法错C 98,cD 格式描述和输出项不匹配,输出无定值2,C语言中函数调用的方法有(D)A 函数调用作为语句一种B 函数调用作为函数表达式一种C 函数调用作为语句或函数表达式两种D 函数调用作为语句、函数表达式或函数参数三种3,设char *s=”\ta\017bc”:则指针变量s指向的字符串所占的字节数是(C)A 9B 5C 6D 74,下列定义不正确的是(C)A #define PI 3.141592B #define S 345C int max( x,y ); int x,y; { }D static char c;5,一个C程序的执行是从(A)A 本程序的main函数开始,到main函数结束B 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C 本程序的main函数开始,到本程序文件的最后一个函数结束D 本程序文件的第一个函数开始,到本程序main函数结束6,以下程序段的输出结果为(B)for ( i=4; i>1; i-- )for ( j=1; j<i; j++ )putchar ( ‘#’ );A 无B ######C #D ###7,sizeof ( float )是(C)A 一个函数调用B 一个不合法的表达式C 一个整形表达式D 一个浮点表达式8,以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是(C)A char s[ 10 ]=”abcdefg”;B char t[ ]=”abcdefg”, *s=t;C char s[ 10 ]; s=”abcdefg”D char s[ 10 ]; strcpy( s, “abcdefg” ) 9,以下运算符中,优先级最高的运算符是(B)A ?:B ++C &&D ,10,以下选项中合法的实型常数是(C)A 5E2.0B E-3C .2E0D 1.3E11,执行语句int x=5, a=0, b=0; if ( x=a+b ) printf ( “****\n”); else printf ( “####\n” );后,结论是A 有语法错误,不能通过翻译B 能通过翻译,但不能连接C 输出****D 输出####12,C语言结构体类型变量在程序执行期间(A)A 所有成员一直驻留在内存中B 只有一个成员驻留在内存中C 部分成员驻留在内存中D 没有成员驻留在内存中13,变量的指针,其含义是指该变量的(B)A 值B 地址C 名D 一个标志14,以下语句char c=’ a ‘; if ( ‘a’<c<=’z’) printf ( “LOW”); else printf ( “UP” );执行后的结果为(A)A LOWB UPC LOWUPD 语句错误,编译不能通过15,执行下列语句的结果为(B)Int x=3, y;Int *px=&x;y=*px++;A x=3, y=4B x=3, y=3C x=4, y=4D x=3, y不知16,以下关于运算符优先顺序的描述中正确的是(C)A 关系运算符<算术运算符<赋值运算符<逻辑运算符B 逻辑运算符<关系运算符<算术运算符<赋值运算符C 赋值运算符<逻辑运算符<关系运算符<算术运算符D 算术运算符<关系运算符<赋值运算符<逻辑运算符18,若定义:int a=511, *b=&a;,则printf ( “%d\n”, *b );的输出结果为(D)A 无确定值B a的地址C 512D 51119,下列表达式中,(B )不满足“当x的值为偶数时值为真,为奇数时值为假”的要求.A x%2==0B ! x%2 !=0C ( x/2*2-x )==0D ! ( x%2 )20,全局变量的定义不可能在(A)A 函数内部B 函数外面C 文件外面D 最后一行选择题集锦1,下列字符中,能作为单个标识符的是( D )A ?AB a=2C a. 3D a_32,下列字符列中,可以作为“字符串常量”的是( B )A ABCB “ABC”C ‘abc’D ‘a’3,在以字节存储字符的系统中,‘\n’在内存占用的字节数是( A )A 1B 2C 3D 44,字符串”xyz “在内存占用的字节数是( B )A 3B 4C 6D 85,设变量m ,n ,a ,b ,c ,d的初值均为0,执行( m=a==b )||( n=c==d )后,m , n的值是()A 0 ,0B 0, ,1C 1 ,0D 1 ,16,设a为5,执行下列计算后,b的值不为2的是()A b = a / 2B b = 6-( --a )C b = a%2D b = a < 3 ? 3 : 27,执行语句” x=( a=3 , b=a-- ) ; “后,x , a , b 的值依次为()A 3 , 3 , 2B 2 , 3 , 2C 3 , 2 , 3D 2 , 3 , 38,设整形变量m , n , a , b , c , d均为1,执行” ( m=a>b )&&( n=a>b ) “后,m , n的值是()A 0 , 0B 0 , 1C 1 , 0D 1 , 19,设有代码” int a = 3 ; “则执行语句”a+=a-=a*a ; “后,变量a的值是()A 3B 0C 9D -1210,若已定义x和y为double类型,则表达式 : x = 1 , y = x + 3/2结果为()A 1B 2C 2.0D 2.511,设 a = 1 , b = 2 , c = 3 , d = 4 则表达式a < b ? a : c < d ? a : d的结果为()A 4B 3C 2D 112,若有以下定义 : char a ; int b ; float c ; double d ;则表达式a*b+d-c值得类型为()A floatB intC charD double13,设ch是char型变量,其值为’A ‘,则下面表达式的值是()ch = ( ch>=’ A ‘&& ch <= ‘ Z ‘ ) ? ( ch + 32 ) : chA ‘ A ‘B ‘ a ‘C ‘ Z ‘D ‘ z ‘14,设有int i = 010 , j = 10 ;则执行”printf ( “%d , %d\n” , ++i , j-- ) ; “的输出值是()A 11 ,10B 9 , 10C 010 , 9D 10 , 915,设a , b为字符变量,执行”scanf ( “a =%c , b = %c “ ,&a , &b )”后使a变为A,b为B,从键盘上的正确输入是()A ‘ A ‘’B ‘B ‘ A ‘ , ‘ B ‘C A = A , B = BD a = A , b = B16,下列语句中,句法错误的是()A while ( x = y ) 5;B do x++ while ( x = = 10 );C while ( 0 );D do 2 ; while ( a = = b );17,假定a和b为int型变量,则执行以下语句后b的值为()a = 1 ;b = 10 ;do { b- = a ; a++ } while ( b-- < 0 ) ;A 9B -2C -1D 818,设x和y为int型变量,则执行下面的循环后 , y的值为()for ( y = 1 , x = 1 ; y <= 50 ; y++ ) {if ( x >= 10 ) break ;If ( x%2 == 1 ) { x + =5 ; continue ; } x - = 3 ;}A 2B 4C 6D 819,下列程序的功能是输出一个整数,判断是不是素数,若为素数输出1,否则输出0,请为程序填空.main ( ){int i , x , y = 1 ;scanf ( “ %d “ , &x ) ;for ( i = 2 ; i <= x/2 ; i++ )if ___________________ { y = 0 ; break ; }printf ( “%d\n” , y ) ;}20,编一个程序,输入X的值,按下列公式计算并输出Y的值。
c语言试题及答案大全一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是一种高级编程语言。
B. C语言可以被编译成机器语言执行。
C. C语言的语法和C++完全相同。
D. C语言不支持面向对象的编程。
答案:B. C语言可以被编译成机器语言执行。
2. C语言中,以下哪个是合法的标识符?A. 123abcB. abc_123C. intD. function()答案:B. abc_1233. 在C语言中,以下哪种循环结构是先判断条件后执行循环体?A. for循环B. while循环C. do-while循环D. switch语句答案:C. do-while循环二、编程题1. 编写一个C程序,计算并输出1到n之间所有整数的和。
其中,n由用户输入。
答案:#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为%d\n", n, sum);return 0;}2. 编写一个C程序,判断一个整数是否为素数。
素数是指除了1和自身外,无法被其他整数整除的整数。
答案:#include <stdio.h>#include <stdbool.h>bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (is_prime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}三、应用题1. 假设有一个班级的学生信息如下:学号姓名年龄性别101 张三 18 男102 李四 17 女103 王五 16 男请根据上述学生信息,编写一个C程序,输出学生的平均年龄。
c语言考试题型及答案一、选择题1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个运算符用于计算两个整数的乘积?A. +B. -C. *D. /答案:C3. 下列哪个选项不是C语言的控制语句?A. ifB. forC. switchD. goto答案:D二、填空题1. 在C语言中,一个基本的数据类型是________。
答案:int2. 定义一个字符数组时,可以使用_______关键字。
答案:char3. 在C语言中,用_______关键字可以定义一个函数。
答案:void 或其他返回类型三、简答题1. 简述C语言中数组和指针的区别。
答案:数组是一种数据结构,用于存储具有相同类型的元素集合。
指针是一个变量,它存储了另一个变量的内存地址。
数组名在C语言中被解释为指向数组首元素的指针。
2. 描述C语言中函数的定义和调用过程。
答案:函数定义包括返回类型、函数名、参数列表和函数体。
函数调用则是在程序中使用函数名和相应的参数列表来执行函数定义的代码。
四、编程题1. 编写一个C语言程序,实现两个整数的加法,并输出结果。
```c#include <stdio.h>int add(int a, int b) {return a + b;}int main() {int num1, num2, result;printf("Enter two numbers: ");scanf("%d %d", &num1, &num2);result = add(num1, num2);printf("The sum is: %d\n", result);return 0;}```2. 编写一个C语言程序,实现字符串的复制功能。
```c#include <stdio.h>#include <string.h>void copyString(char *source, char *destination) { strcpy(destination, source);}int main() {char str1[50], str2[50];printf("Enter a string: ");fgets(str1, 50, stdin);copyString(str1, str2);printf("Copied string is: %s", str2);return 0;}```。
一、单项选择题:(10分,每题2分)1.char *p[10];该语句声明了一个:。
A)指向含有10个元素的一维字符型数组的指针变量pB)指向长度不超过10的字符串的指针变量pC)有10个元素的指针数组p,每个元素可以指向一个字符串D) 有10个元素的指针数组p,每个元素存放一个字符串2.若int x;且有下面的程序片断,则输出结果为:。
for (x=3; x<6; x++){printf((x%2) ? "##%d" : "**%d\n", x);}A) ##3B) **3C) **3D)##3**4**4 ##4 ##4**5 ##5##5 **53.在while(!x)语句中的!x与下面条件表达式等价的是:。
A) x!=0 B) x==1 C) x!=1 D) x==04.已知struct point{int x;int y;};struct rect{struct point pt1;struct point pt2;};struct rect rt;struct rect *rp = &rt;则下面哪一种引用是不正确的________。
A) B) (*rp). C) rp-> D)rt->5.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为:。
A) *(a+j*n+i) B) *(a+i*n+j) C) *(*(a+i)+j) D) *(*a+i)+jCDDDC二、分析程序并写出运行结果。
(25分,每题5分)1.#include <>main(){int n;static char *monthName[]={"Illegal month", "January", "February","March", "April", "May", "June", "July", "August","September", "October", "November", "December"};for (n=1; n<=12; n++){printf("%s\n", monthName[n]);}}运行结果是:JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember2.#include<>#define ARR_SIZE 7void YH(int a[][ARR_SIZE], int n);void PrintYH(int a[][ARR_SIZE], int n);main(){int a[ARR_SIZE][ARR_SIZE];YH(a, ARR_SIZE-1);PrintYH(a, ARR_SIZE-1);}void YH(int a[][ARR_SIZE], int n){int i, j;for (i=1; i<=n; i++){for (j=1; j<=i; j++){if (j==1 || i==j){a[i][j] = 1;}else{a[i][j] = a[i-1][j-1] + a[i-1][j];}}}}void PrintYH(int a[][ARR_SIZE], int n){int i , j ;for (i=1; i<=n; i++){for (j=1; j<=i; j++){printf("%4d", a[i][j]);}printf("\n");}}运行结果是:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 13.#include <>main(){int i, n;for (i=1; i<=5; i++){printf("Please enter n:");scanf("%d", &n);if (n <= 0) continue;printf("n = %d\n", n);}printf("Program is over!\n");}程序运行时输入:1 -2 3 -4 5↙运行结果是:n = 1Please enter n: Please enter n:n = 3 Please enter n: Please enter n:n = 5 Program is over!4.#include <>void Func(int n);main(){int i;for (i = 0; i < 2; i++){Func(i);}}void Func(int n){static int t = 1;printf("t=%d\n", t++);}运行结果是:t=1t=25.#include <>int Func(int i);main(){int i;for (i=3; i<5; i++){printf(" %d", Func(i));}printf("\n");}int Func(int i){static int k = 10;for (; i>0; i--){k++;}return (k);}运行结果是:13 17三、阅读并完成程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
(完整版)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语言考试题及答案以及解析一、选择题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语言考试试题及答案一、选择题(每题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语言中,用于定义变量的关键字是________。
一、单项选择题:(1)以下叙述中错误的是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句FILE fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(2)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是A)feof(fp)B)ftell(fp)C)fgetc(fp)D)rewind(fp)(3) 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为A) 0B) 1C) -1D) 一个非0值(4) 下列关于C语言数据文件的叙述中正确的是A) 文件由ASCII码字符序列组成,C语言只能读写文本文件B) 文件由二进制数据序列组成,C语言只能读写二进制文件C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(5) 以下叙述中不正确的是A)C语言中的文本文件以ASCⅡ码形式存储数据B)C语言中对二进制文件的访问速度比文本文件快C)C语言中,随机读写方式不适用于文本文件D)C语言中,顺序读写方式不适用于二进制文件(6) 以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include <stdio.h>main(){ FILE *fout; char ch;fout=fopen('abc.txt',’w');ch=fgetc(stdin);while(ch!=’#’){ fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出错的原因是A) 函数fopen调用形式错误B) 输入文件没有关闭C) 函数fgetc调用形式错误D) 文件指针stdin没有定义(7) 以下叙述中错误的是A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以B) 在程序结束时,应当用fclose函数关闭已打开的文件C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D) 不可以用FILE定义指向二进制文件的文件指针(8) 在C程序中,可把整型数以二进制形式存放到文件中的函数是A) fprintf函数B) fread函数C) fwrite函数D) fputc函数(9) 标准函数fgets(s, n, f) 的功能是A) 从文件f中读取长度为n的字符串存入指针s所指的内存B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C) 从文件f中读取n个字符串存入指针s所指的内存D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存(10)以下程序的功能是进行位运算main(){ unsigned char a, b;a=7^3; b= ~4 & 3;printf("%d %d\n",a,b);}程序运行后的输出结果是A)4 3B)7 3C)7 0D)4 0(11)有以下程序main(){int c=35; printf("%d\n",c&c);}程序运行后的输出结果是A)0B)70C)35D) 1(12) 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是A) c1^c2B) c1&c2C) ~c2D) c1|c2(13) 有以下程序main( ){ unsigned char a,b;a=4|3;b=4&3;printf(“%d %d\n”,a,b(;}执行后输出结果是A) 7 0B) 0 7C) 1 1D) 43 0(14) 有以下程序main(){ int x=3, y=2,z=1;printf("%d\n",x/y&~z);}程序运行后的输出结果是A) 3B) 2C) 1D) 0(15) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是A) x || yB) x | yC) x & yD) x ^ y(16) 设int b=2;表达式(b>>2)/(b>>1)的值是A) 0B) 2C) 4D) 8(17) 设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是A) 1B) 0C) -1D) 2(18) 语句:printf("%d \n",12 &012);的输出结果是A) 12B) 8C) 6D) 012(19) 在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则A) 称为函数的直接递归调用B) 称为函数的间接递归调用C) 称为函数的循环调用D) C语言中不允许这样的递归调用(20) 不合法的main函数命令行参数表示形式是A) main(int a,char *c[])B) main(int arc,char **arv)C) main(int argc,char *argv)D) main(int argv,char *argc[])二、多项选择题:(1) C语言规定,程序中各函数之间错误的描述为A) 既允许直接递归调用也允许间接递归调用B) 不允许直接递归调用也不允许间接递归调用C) 允许直接递归调用不允许间接递归调用D) 不允许直接递归调用允许间接递归调用(2)以下关于函数的叙述中错误的是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(3) 若程序中定义了以下函数double myadd(double a,double B){ return (a+B) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中正确的说明是A) double myadd(double a,B) ;B) double myadd(double,double);C) double myadd(double b,double A) ;D) double myadd(double x,double y);(4) 若已定义的函数有返回值,则以关于该函数调用的叙述中正确的是A) 调用可以作为独立的语句存在B) 调用可以作为一个函数的实参C) 调用可以出现在表达式中D) 调用可以作为一个函数的形参(5) 有以下函数定义:void fun( int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的错误调用语句是A) fun(int y,double m);B) k=fun(10,12.5);C) fun(x,n);D) vold fun(n,x);(6) 在一个C程序中错误的描述A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置(7) C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型不是A) voidB) intC) floatD) double(8) 若有以下程序#include <stdio.h>void f(int n);main(){ void f(int n);f(5);}void f(int n){ printf("%d\n",n); }则以下叙述中正确的是A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明D) 函数f无返回值,所以可用void将其类型定义为无值型(9) 以下所列的各函数首部中,错误的是A) void play(var :Integer,var b:Integer)B) void play(int a,b)C) void play(int a,int b)D) Sub play(a as integer,b as integer)(10) 以下叙述中正确的是A) 在不同的函数中可以使用相同名字的变量B) 函数中的形式参数是局部变量C) 在一个函数内定义的变量只在本函数范围内有效D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(11) 以下说法中不正确的是A) C语言程序总是从第一个的函数开始执行B) 在C语言程序中,要调用的函数必须在main()函数中定义C) C语言程序总是从main()函数开始执行D) C语言程序中的main()函数必须放在程序的开始部分(12) 在C语言中,不合法的长整型常数是A) 0LB) 4962710C) 0.054838743D) 2.1869e10(13) 在下列选项中,正确的赋值语句是A) ++t;B) n1=(n2=(n3=0));C) k=i==j;D) a=b+c=1;(14) 可以把字符串:Hello!赋给数组b的语句是A) char b[10]={’H’,’e’,’l’,’l’,’o’,’!’};B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!");D) char b[10]="Hello!";(15) 若程序中有下面的说明和定义struct abc{int x;char y;}struct abc s1,s2;则不会发生的情况是A) 编译进错B) 程序将顺利编译`连接`执行C) 能顺利通过编译`连接`但不能执行D) 能顺利通过编译`但连接出错(16) 不能正确表示a≥10或a≤0的关系表达式是A)a>=10 or a<=0B)a>=10│a<=0C)a>=10││a<=0D)a>=10 ││a<=0(17) 若有以下程序段,w和k都是整型变量:┆w=k;LB: if(w==0) go to LE;w--;printf("*");goto LB;LE: ┆则可以与上面程序段等价的循环语句是A)for(w=k;w!=0;w--) printf("*");B)for(w=k;w;--w)printf("*");C)w=k;D)w=k;while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);(18) 若有说明,double *p,a;则能通过scanf语句不能正确给输入项读入数据的程序段是 A)*p=&a; scanf("%lf",p);B)p=(double *)malloc(8);scanf("%f",p);C) p=&a;scanf("%lf",a);D)p=&a; scanf("%le",p);(19) 若有以下的说明和语句:main(){int t[3][2], *pt[3],k;fpr(k=o; k<3;k++)pt[k]=t[k];}则以一选项中能不能正确表示t数组元素地址的表达式是A) &t[3][2]B) *pt[0]C) *(pt+1)D) &pt[2](20) 要求函数的功能是在一维数组中查找值;若找到则返回所在的下标值,否则返回0;数列放在到中。
c语言c语言考试题库及答案一、选择题1. 在C语言中,用于定义变量的关键字是:A. defineB. varC. intD. let答案:C2. 下列哪个是C语言中的合法标识符?A. 2variableB. variable2C. variable-twoD. variable#答案:B3. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C4. C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello\tWorld"答案:A5. 以下哪个是C语言中的控制语句?A. ifB. switchC. both A and BD. none of the above答案:C二、填空题6. 在C语言中,一个基本的程序结构包括____、____和____。
答案:预处理指令;函数定义;语句7. 一个C语言程序的执行从____函数开始。
答案:main8. 在C语言中,使用____关键字可以定义一个函数。
答案:void 或其他数据类型9. 一个C语言数组的元素默认情况下是按照____顺序存储的。
答案:连续10. C语言中的____运算符用于连接字符串。
答案:+三、简答题11. 解释C语言中指针的概念。
答案:指针是一种变量,它存储了另一个变量的内存地址。
通过指针,可以直接操作内存地址中的数据,实现数据的间接引用。
12. 描述C语言中结构体的定义和使用。
答案:结构体是一种用户自定义的数据类型,它允许将多个不同类型的变量组合成一个单一的类型。
定义结构体时,使用struct关键字,然后定义结构体的名称和成员。
使用结构体时,可以创建结构体变量,并通过点(.)运算符访问其成员。
四、编程题13. 编写一个C语言程序,计算并输出1到100的整数之和。
c语言考试试题及答案一、选择题1. 在C语言中,下列哪个关键字用于声明一个变量的名称?A. defineB. intC. printfD. scanf答案:B2. 函数的返回类型可以是下列哪种类型?A. intB. floatC. charD. all of the above答案:D3. 下列哪个运算符用于访问结构体变量的成员?A. .B. ->C. :D. ,答案:A4. 文件指针是下列哪种类型?A. FILEB. pointerC. file*D. fp答案:A5. 下面哪个循环结构在执行前先判断条件,再决定是否执行循环体?A. forB. whileC. do-whileD. switch答案:B二、填空题1. C语言中,用于定义常量的关键字是____。
答案:const2. 在C语言中,用于输出结果到控制台的函数是____。
答案:printf3. C语言中,用于读取用户输入的函数是____。
答案:scanf4. 下面是一个二维数组的声明方式:int arr[3][4];那么该数组的元素个数是____。
答案:125. C语言中,用于在循环执行过程中跳过当前迭代的关键字是____。
答案:continue三、编程题请编写一个程序,实现从键盘输入两个整数,然后输出它们的和。
```c#include <stdio.h>int main(){int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```以上是一道简单的示例题目,通过该题目可以熟悉C语言的基本输入输出、变量声明和运算符等基础知识。
c语言等级考试试题一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef2. 下列哪个选项不是C语言的标准输入输出函数?A. printf()B. scanf()C. coutD. getchar()3. 在C语言中,全局变量的生命周期是?A. 只在定义它的函数中有效B. 从定义开始到程序结束C. 只在main函数中有效D. 只在定义它的代码块中有效4. C语言中,以下哪个操作符用于按位取反?A. !B. ~C. ^D. &&5. 下列哪个不是C语言中合法的赋值运算符?A. +=B. +=C. --D. ++6. 在C语言中,int类型的变量通常占用多少字节的内存空间?A. 1B. 2C. 4D. 87. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcat()B. strcpy()C. strncpy()D. strncat()8. 下列哪个是C语言中的条件运算符?A. ?B. ||C. &&D. ++9. 在C语言中,以下哪个类型用于表示字符?A. intB. charC. floatD. double10. C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcat()C. strcpy()D. strncat()二、填空题(每题3分,共15分)11. 在C语言中,一个浮点数变量声明为 `float x;`,其默认的初始值是______。
12. 当使用 `scanf()` 函数读取字符串时,通常会使用占位符______。
13. 在C语言中,`sizeof` 运算符可以用来获取数据类型或变量的______。
14. 如果一个变量声明为 `static int count;`,那么它的生命周期是 ______。
15. C语言中的 `break` 语句通常用于 ______ 结构中,以提前退出循环。
高三11月份月考C语言考试题
一、选择题:(30分)
1.在每一个C程序中都必须包含一个名为()的函数.
A.main
B. MAIN
C. name
D. function
2.以下叙述正确的是().
A.C程序中注释部分可以出现在程序中任意合适的地方
B.花括号{和}只能作为函数体的定界符
C.构成C程序的基本单位是函数, 所有函数名都可以由用户命名
D.分号是C语句之间的分隔符, 不是语句的一部分
3.若有定义int a; 变量a占用内存的2个字节, 则a所能存储数据的最
小值是().
A.0
B. -32767
C. -32768
D. -65535
4.在下列4组八进制和十六进制数中, 全部正确的是().
A.123 089 0x23af 0xbd
B. 0a21 056 0xabc 0x789
C.010 052 0xdfa 0xff14
D. 0x123 0283 0xabc 0x25f
5. 设有定义”int x=8,y,z;”执行”y=z=x++; x=y==z;”后,变量x的值是()
A. 0
B. 1
C. 8
D. 9
6. 能正确表示关系3<x<5的语句是()
A. x>3 and x<5
B. 3<x<5
C. X>3||X<5
D. x>3&&x<5
7. 下面表达式正确的是()
A. a+b=5
B. 56=a11
C. 5.6+6.2%3.1
D.
a=5,b=6,c=7
8. 已知a为整型变量,表达式a!=0真假情况不同的表达式是()
A. a>0||a<0
B. a
C. !a==0
D. !a
9. 下面程序的输出结果是()
main()
{ int x=’\23’;
printf(“%d\n”,--x); }
A.19
B. 18
C. 23
D. 24
10. 以下运算符优先级别最低的是()
A. ++
B. ,
C. ?:
D. /
11. 下面程序如果在运行时输入18,18,那么b的值是()
main() { int a,b;
scanf(“%d,%o”,&a,&b);
b+=a;
printf(“%d”,b); }
A. 36
B. 34
C. 输入错误,b的值不确定
D. 18
12. 有以下程序,执行后输出的结果是()
main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf(“%d”,d); }
A. 2
B. 无输出
C. 5
D. 有语法错误,编译不能通过
13. 执行下面程序段的输出结果是()。
int x=4, y=-55;
if(x>0) if(y>0) printf(“AA”); else printf(“BB”);
A. AA
B. BB
C. 无输出
D. 程序错误
14.以下程序的输出结果是()。
main()
{ if(2==3-1<=8!=4*3)
printf(“true\n”);
else printf(“false”); }
A. true
B. false
C. T
D. F
15.选择i正确的运行结果是()
int i=10;
switch(i)
{ case 9: i+=1; break;
case 10: i+=1; break;
case 11: i+=1;
default: i+=1; }
A.10
B. 11
C. 12
D. 13
二、填空题(30分)
1.设变量num和变量x的数据类型均为float, num的值为
2.5, 则执行
语句x=(int)num+3.2E-1;后, num的值为______,x为_______。
2.C语言规定: 在每一个字符串结尾加上个______,以便根据此判断是否
结束。
3.当a=6,x=6.8,b=4时,表达式x+a%7(int)x+8/3+b的值是 _____
4.执行int x=4,y; y=x--+3; 语句后,变量x的值是, y
的值是。
5.在C语言中逻辑运算符的优先级算术运算符.
6.若有语句int i=-19,j=i%4; printf(“%d”,j); 则输出的结果是.
7.C语言规定了运算符的优先级和结合性, 其结合性分为和
.
8.在C语言中, 数据类型分为基本数据类型和,基本数据类
型包括整型, 和字符型3种.
9. 若有定义int i=10,j=0; 则执行完语句if(j=0) i++; else i--; 后i
的值为.
10. 分支语句if(x>=y)max=x; else max=y; 用含条件运算符的赋值语句表
示为.
11. 执行循环结构或switch结构中的语句能够立即退出该结构.
三、写出下面程序的运行结果(12分)
1. 下面程序在执行后,屏幕上显示。
main()
{ int a; float b;
a=4; b=9.587;
printf(“a=%d, b=%4.2f\n”,a,b); }
2. 有下面程序段,若输入5和2:结果为。
#include<stdio.h>
main()
{ int s,t,a,b;
scanf(“%d,%d”,&a,&b);
s=1; t=1;
if(a>0) s=s+1;
if(a>b) t=t+s;
else if(a==b) t=5;
else t=2*s;
printf(“s=%d, t=%d\n”, s, t ); }
3. 下面程序的运行结果是。
main()
{ int I;
for(i=1; i<=5;i++)
{
if(i%2) printf(“*”);
else continue;
printf(“#”); }
printf(“$\n”);
}
四、补全程序(20分)
1. 从键盘上输入一个正整数,求这个数的阶乘。
main()
{ int n,i1,p;
Scanf(“%d”,&n);
For( , i1<=n; i1++)
;
printf(“n=%d,n!=%d\n”,n,p); } 2. 有以下程序段:
s=1.0
for(k=1; k<=n; k++) s=s+1.0/(k*(k+1));
printf(“%f\n”, s);
使下面程序段的功能与上面完全等同。
s=0.0;
k=0;
do
{ s=s+d;
d=1.0/(k*(k+1));
}while ;
printf(“%f\n”,s);
五、编程题(8分)
1.键盘输入20个数,求它们的平方和。
答案
一.AACCB DDDBB BBBAB
二.1. 2.5 2.32 2.‘\0’ 3. 48.8 4. 3 7
5.低于
6. -3
7. 左结合右结合
8. 导出数据类型浮点型
9. 9 10.max=x>=y?x:y 11.break
三、1.a=4,b=9.59 2.s=2,t=3 3.*#*#*#$
四、 1. i1=1,p=1 p=p*i
2.d=1.0; k++; k<n
五、main()
{
int i,n,s=0;
for(i=1;i<=20;i++)
{scanf(“%d”,&n);s=s+n*n;}
printf(“s=%d\n”,s);
}。