15-16-2学期C程序设计复习题库
- 格式:docx
- 大小:37.87 KB
- 文档页数:18
广州轻工职业学校(大源校区)2015-2016学年第二学期《C语言程序设计》期末考试试卷(B卷)注意事项1、请首先按要求在试卷的标封处填写您的专业、姓名、学号和所在的班级名称;2、请仔细阅读各种题目的回答要求,在规定的位置填写您的答案;3、不要在试卷上乱写乱画,不要在标封区填写无关内容。
4、请将答案填写到答题卡的相应位置。
使用对象:15计算机设计班考试时间:120分钟考试方式:考试一、单项选择题(每小题1分,共计40分):1.C语言中运算对象必须是整型的运算符是A)%= B)/ C)=D)<=2.若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int %3 D)a=a+7=c+b 3.若变量a,i已正确定义,且i已正确赋值,合法的语句是A)a= =1 B)++i;C)a=a++=5;D)a=int(i);4.若有定义:int a=7;float x=,y=;则表达式x+a%3*(int)(x+y)%2/4的值是A)B)2.750000 C)D)5.以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值f6.已知int i,a;执行语句i=(a=3,a++,- -a,a+4,a+5,++a);后,变量i的值为A)2 B)3 C)4 D)5 7.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为A)int B)float C)double D)不确定8.在C语言中,char型数据在内存中的存储形式是A)补码B)反码C)原码D)ASCII码9.字符型数据在机器中是用ASCII码表示的,字符’5’和’7’在机器中表示为A)和01110111B)01000101和01100011C)00110101和00110111D)01100101和0110011110.不能进行++和- -运算的数据类型为A)指针B)整型C)长整型D)常量11.设有int x=11;则表达式(x++*1/3)的值是A)3 B)4 C)11 D)12 12.以下程序的输出结果是main(){ int a=21,b=11; printf("%d\n",- -a+b,- -b+a); }A)30 B)31 C)32 D)33 13.假设整型变量a,b,c的值均为5,则表达式a+++b+++c++的值为A)17 B)16 C)15 D)1414.已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36 B)0 C)-24 D)-6015.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A)n=(n*100+)/B)m=n*100+,n=m/C)n=n*100+D)n=(n/100+)*16.sizeof(float)是A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式17.在C语言中,int,char和short三种类型数据在内存中所占用的字节数A)由用户自己定义B)均为2个字节C)是任意的D)由所用机器的机器字长决定18.以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C 语言表达式是A)x/y*z B)x*(1/(y*z))C)x/y*1/z D)x/y/z 19.下列关于复合语句和空语句的说法错误的是A)复合语句是由“{”开头,由“}”结尾的B)复合语句在语法上视为一条语句C)复合语句内,可以有执行语句,不可以有定义语句部分D)C程序中的所有语句都必须由一个分号作为结束20.下列关于字符串的说法中错误的是A)在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符′\0′作为字符串结束标志B)′\0′作为标志占用存储空间,计入串的实际长度C)在表示字符串常量的时候不需要人为在其末尾加入′\0′D)在C语言中,字符串常量隐含处理成以′\0′结尾21.以下叙述中正确的是A)C语言比其他语言高级B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点22.以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义23.以下说法正确的是A)C语言程序总是从第一个的函数开始执行B)在C语言程序中,要调用函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分24.C语言规定,在一个源程序中,main函数的位置A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后25.以下叙述不正确的是A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面26.下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用27.以下叙述正确的是A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符28.以下说法错误的是A)一个算法应包含有限个步骤B)在计算机上实现的算法是用来处理数据对象的C)算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现D)算法的目的是为了求解29.算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A)有零个输入或多个输入B)高效性C)有穷性D)确定性30.10 下列关于C语言的说法不正确的是A)C语言既具有高级语言的一切功能,也具有低级语言的一些功能B)C语言中的每一条执行语句都必须用分号结束,分号不是C语言的一部分,是语句之间的分隔符号C)注释可以出现在程序中任意合适的地方D)命令行后面不能加分号,命令行不是C语言的语句31.以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每一种高级语言都有它对应的编译程序32.C语言中用于结构化程序设计的3种基本结构是A)顺序结构、选择结构、循环结构B)if,switch,breakC)for,while,do-whileD)if,for,continue33.C语言中最简单的数据类型包括A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)字符型、实型、逻辑型34.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字和下划线中任一字符35.下列可用于C语言用户标识符的一组是A)void, define, WORDB)a3_b3, _123,CarC)For, -abc, IF CaseD)2a, DO, sizeof36.下面四个选项中,均是不正确的8进制数或16进制数的选项是A)016 0x8f 018 B)0abc 017 0xa C)010 -0x11 0x16 D)0a12 7ff -123 37.下列数据中,不合法的C语言实型数据的是A)B)123e3 C)D)38.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A)a=20000+20000; B)a=4000*10; C)a=30000+10000; D)a=4000L*10L;39.若有说明语句:char c='\72';则变量cA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定40.有字符串如下,"\n\\\407as1\"\xabc",则字符串的长度为A)6 B)7 C)8 D)9二、多项选择题(每小题2分,共10分):1. 下面哪些说法是正确的()A.C语言是一门结构化程序设计语言B.它虽是高级语言,但由于能嵌入汇编,并实现低级别功能(硬件操作),C语言有时也叫中级语言C.C语言是实现面向对象编程最佳的程序设计语言D. C语言有移植性好等特点2.关于开发C程序,下面说法正确的是:()A)先用C语言编写程序源代码,然后通过解释器解释执行B)先用编写C源代码,然后编译成目标文件,连接生成可执行文件C)先用C语言编写程序源代码,然后编译成目标文件D)C语言的可移植性,是在源代码级的3.下面哪些是C的特点()A)解释执行,可调试B) 语言简洁、紧凑,使用方便、灵活;C)运算符极为丰富D)生成目标代码质量高,程序执行效率高E)可移植性好4.哪些错误是运行期错误()A)栈溢出B)表达式错误C )缺少;作为结束D )非法内存访问5.下列哪些错误是编译阶段错误( )A )栈溢出B )表达式错误C ).缺少分号(;)作为结束符D )非法内存访问(二)主观题部分三、填空题(每空1分,共18分):1.C 语言具有层次清晰的特点,它用函数作为程序模块以实现程序的 ,从而使得程序易于调试和维护,符合现代编程的风格,所以C 语言是一种 语言。
C程序设计复习题(二)C程序设计复习题(二)一、选择1、下面程序的运行结果是______#include#includemain(){ char a[80]=”AB”,b[80]=”LMNP”;int i=0;strcat(a,b);while(a[i++]!=’\0’) b[i]=a[i];puts(b);}A)LB B)ABLMNP C)AB D)LBLMNP2、下面程序的功能是将字符串s中所有的字符c删除。
请选择填空。
#includemain(){ char s[80];int I,j;gets(s);for(i=j=0; s[i]!=’\0’;I++)if(s[i]!=’c’)_________;s[j]=’\0’;puts(s);}A) s[j++]=s[i]; B)s[++j]=s[i]; Cs[j]=s[i];j++; D) s[j]=s[i];3、有下面的程序段:char a[3],b[]=”China”;a=b;printf(“%s”,a);则_______________。
A)运行后将输出China B)运行后将输出ChC)运行后将输出Chi D)编译出错4、下面程序段的运行结果是_______char a[7]=”abcdef”;char b[14]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);A)<空格> B)\0 C)e D)f5、以下正确的说法是______在C语言中:A) 实参和与其对应的形参各占用独立的存储单元;B) 实参和与其对应的形参共占用一个存储单元;C) 只有当实参和与其对应的形参同名时才共同占用存储单元;D) 形参是虚拟的,不占用存储单元。
6、以下程序的运行结果是______fun(int x){ if(x/2>0) fun(x/2-2);printf(“%d”,x);}main(){ fun(20);printf(“\n”);}A)20 8 2 -1 B)2 8 20 C)8 D)-1 2 8 207、以下正确的说法是________如果在一个函数的复合语句中定义了一个变量,则该变量______A) 只在该复合语句中有效B) 在本程序范围内均有效C)在该函数中有效D) 为非法变量8、若使用一维数组名作为函数实参,则以下正确的说法是______A)必须在主调函数中说明此数组的大小B)实参数组类型与形参数组类型可以不匹配C)在被调函数中,不需要考虑形参数组的大小D)实参数组与形参数组名必须一致9、若有定义:int a[4][6];则能正确表示a数组中任一元素a[i][j](此处0≤i<4, 0≤j<6)地址的表达式是________。
【章节】第1章 C++基础知识【知识点】1、 C++程序的构成与书写形式;2、基本数据类型,常量、变量和表达式3、 C++的标准输入输出【单选题】1、在C++中,源程序变为可执行程序的正确顺序应该是( ) 。
A. 编辑、链接、编译、执行B. 编辑、编译、链接、执行C. 编译、编辑、链接、执行D. 编译、链接、编辑、执行答案:B2、要把高级语言编写的源程序转换为目标程序,需要使用( ) 。
A. 编辑程序B. 驱动程序C. 调试程序D. 编译程序答案:D3、下列关于C++与C语言的关系描述中,错误的是( ) 。
A. C语言是C++语言的一个子集B. C++与C语言是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的答案:D4、下面为使用面向对象语言的正确理由是( ) 。
A. 面向对象程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构B. 程序语句比面向过程语言简单C. 面向对象程序设计可以设计为自行修改错误D. 面向对象程序很容易概念化答案:D5、以下选项中,合法的用户标识符是( ) 。
A. longB. _2TestC. 3DmaxD. A.dat答案:B6、下列描述中正确的是( ) 。
A. 不是每个C++程序都必须包含预处理命令#includeB. C++程序必须有return 语句C. C++程序中的变量必须定义在主程序内部D. C++程序中所使用的符号常量可以不进行定义答案:A7、C++源程序文件的扩展名为( ) 。
B. .CC. .DLLD. .EXE答案:A8、cout是I0流库预定义的( ) 。
A. 类B. 对象C. 包含文件D. 常量答案:B9、 C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( ) 。
A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念答案:D10、下列选项中,( ) 是不合法的标识符.A. ProgramB. Obj23C. doubleD. B_C_D答案:C11、下列标识符中,不合法的用户标识符为( ) 。
《C语言程序设计》理论试题库选择题100例选择题1.以下选项中属于C语言的数据类型是( )A、复数型B、逻辑型C、双精度型D、集合型2.在C语言中,不正确的int 类型的常数是( )A、32768B、0C、037D、0xAF3.设有说明语句:char a= '\72';则变量a ( )A、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法4.以下所列的C语言常量中,错误的是( )A、0xFFB、1.2e0.5C、2LD、'\72'5.以下选项中合法的字符常量是( )A、"B"B、'\010'C、-268D、D6.在C语言中,合法的长整型常数是( )A、0LB、4962710C、324562&D、216D7.下列标识符中,合法的标识符是( )A、-abc1B、1abcC、_abc1D、 for8.C语言程序的基本单位是( )A、语句B、程序行C、函数D、字符9.以下叙述正确的是()A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义不用户标识符D、define和if都不能定义为用户标识符10.以下叙述正确的是()A、可以把define和if定义为用户标识符B、可以把define定义为用户标识符,但不能把if定义为用户标识符C、可以把if定义为用户标识符,但不能把define定义为用户标识符D、define和if都不能定义为用户标识符11.有如下程序long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2));else return(2);}main( ){printf("%d\n",fib(3));该程序的输出结果是()A、2B、 4C、 6D、812.在C语言中,函数的隐含存储类别是()A、 autoB、 staticC、 externD、无存储类别13.以下所列的各函数首部中,正确的是()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)14.在C程序中,可把整型数以二进制形式存放到文件中的函数是()A、 fprintf函数B、 fread函数C、fwrite函数D、 fputc函数15.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是()A、 EOFB、 0C、非零值D、 NULL 16.若要打开A盘上的user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()A、 fopen("A:\user\abc.txt","r")B、fopen("A:\user\abc.txt","r+")C、fopen("A:\user\abc.txt","rb")D、fopen("A:\user\abc.txt","w") 17.以下程序的输出结果是()A、 0B、 29C、 31D、无定值fun(int x,int y,int z){ z=x*x+y*y;}main( ){ int a=31;fun(5,2,a);printf("%d",a);}18.当调用函数时,实参是一个数组名,则向函数传送的是()A、数组的长度B、数组的首地址C、数组每一个元素的地址D、数组每个元素中的值19.以下只有在使用时才为该类型变量分配内存的存储类说明是()A、auto和staticB、auto和registerC、register和staticD、extern和register20.以下程序的输出结果是()A、1B、2C、3D、4long fun( int n){ long s;if(n= =1 || n= =2) s=2;else s=n-fun(n-1)return s;}main( ){ printf("%ld\n",fun(3)); }21.以下程序的输出结果是()main( ){ int num= 0;while(num<=2){ num++;printf("%d\n",num);}A、 1B、1C、1D、l2 2 23 3422.以下程序的输出结果是()int f( ){static int i=0;int s=1;s+=i;i++;return s;}main( ){int i,a=0;for(i=0;i<5;i++) a+=f();printf("%d\n",a);}A、20B、24C、25D、1523.以下程序的输出结果是()f(int b[ ],int m,int n){int i,s=0;for(i=m;i<n;i=i+2) s=s+b[i];return s;}main( ){int x,a[ ]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf("%d\n",x);}A、10B、18C、8D、1524.下列程序执行后的输出结果是()A、GB、HC、ID、Jmain( ){int x='f';printf("%c \n",'A'+(x-'a'+1));}25.下列程序执行后的输出结果是()A、-32767B、FFFEC、-1D、-32768main( ){int x=0xFFFF;printf("%d \n",x--);}26.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是()A、a\bre\'hi\'y\\\bouB、a\bre\'hi\'y\bouC、re'hi'youD、abre'hi'y\bou (说明:'\b'是退格符) 27.有如下程序main( ){int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}运行该程序的输出结果是()A、3 4B、4 2C、4 3D、3 328.若变量已正确说明为float类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a 赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:()A、10<回车>22<回车> 33<回车>B、10.0,22.0,33.0<回车>C、10.0<回车>22.0 33.0<回车>D、10 22<回车> 33<回车>29.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()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);30.以下程序段的输出结果是()int a=1234;printf("%2d\n",a);A、12B、34C、1234D、提示出错、无结果31.设int b=2;表达式(b>>2)/(b>>1)的值是()A、0B、2C、4D、832.有如下定义()struct person{char name[9]; int age;};struct person class[10]={ "Johu",17,"Paul",19,"Mary",18,"Adam",16};根据上述定义,能输出字母M的语句是()A、prinft("%c\n",class[3].mane);B、pfintf("%c\n",class[3].name[1]);C、prinft("%c\n",class[2].name[1]);D、printf("%c\n",class[2].name[0]);33.设有以下说明语句struct ex{ int x;float y;char z;}example;则下面的叙述中不正确的是()A、struct是结构体类型的关键字B、example是结构体类型名C、x,y,z都是结构体成员名D、struct ex是结构体类型名34.以下程序的输出是()A、10B、11C、51D、60struct st{ int x;int *y;} *p;int dt[4]={ 10,20,30,40 };struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};main( ){ p=aa;printf("%d\n",++(p->x));}35.以下程序的输出结果是()main( ){char x=040;printf("%o\n",x<<1);}A、100B、80C、64D、3236.若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是()A、scanf("%d%d%d",&a,&b,d);B、scanf("%d%d%d",&a,&b,&d);C、scanf("%d%d%d",a,b,d);D、scanf("%d%d%d",a,b,*d);37.以下程序的输出结果是()main( ){int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}A、5B、4C、6D、不确定38.设x,y,z和k都是int 型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值( )A、4B、16C、32D、5239.当c的值不为0 时,在下列选项中能正确将c的值赋给变量a、b的是( )A、c=b=a;B、(a=c)||(b=c);C、(a=c)&&(b=c);D、a=c=b;40.能正确表示a和b同时为正或同时为负的逻辑表达式是( )A、(a>=0||b>=0)&&(a<0||b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a+b>0)&&(a+b<=0)D、a*b>041.语句:printf("%d",(a=2)&&(b=-2));的输出结果是( )A、无输出B、结果不确定C、-1D、142.设有 int x=11;则表达式 (x++ * 1/3) 的值是( )A、3B、 4C、 11D、 1243.设 int x=1, y=1;表达式(!x||y--)的值是()A、0B、 1C、 2D、 -144.C语言中运算对象必须是整型的运算符是()A、%=B、/C、=D、〈=45.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()A、1B、2C、2.0D、2.546.若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是()A、0B、0.5C、1D、247.能正确表示逻辑关系:“a》10或a《0”的C语言表达式是()A、a>=10 or a<=0B、a>=0|a<=10C、a>=10 &&a<=0D、a>=10‖a<=048.下程序的输出结果是( )A、-1 1B、0 1C、1 0D、0 0main( ){ int a= -1,b=1,k;if((++a<0)&& ! (b-- <=0)) printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}49.若有定义: float w;int a,b;则合法的switch语句是()A、switch(w)B、switch(a){ case 1.0:printf("*\n"); { case 1 printf("*\n");case 2.0:printf("**\n"); case 2 printf("**\n");} }C、switch(b)D、switch(a+b){ case 1:printf("*\n"); { case 1:printf("*\n");default:printf("\n"); case 2:printf("**\n");case 1+2:printf("**\n"); default:printf("\n");} }50.如下程序main( ){ int x=1,a=0,b=0;switch(x){ case 0:b++;case 1:a++;case 2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是()A、a=2,b=1B、a=1,b=1C、a=1,b=0D、a=2,b=251.有如下程序main( ){ float x=2.0,y;if(x<0.0) y=0.0;else if(x<10.0) y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是()A、0.000000B、0.250000C、0.500000D、1.00000052.有如下程序main( ){ int a=2,b=-1,c=2;if(a<b)if(b<0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是( )53.若执行以下程序时从键盘上输入9,则输出结果是()A、11B、10C、9D、8main(){ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}54.阅读以下程序:main( ){ int x;scanf("%d",&x);if(x--<5) printf("%d",x);else printf("%d",x++);}程序运行后,如果从键盘上输人5,则输出结果是()A、3B、4C、5D、655.以下叙述正确的是()A、do-while语句构成的循环不能用其它语句构成的循环代替。
c语言程序设计考试题库及答案1. 选择题1.1 下列关于C语言的描述,错误的是:A. C语言是一种过程式编程语言B. C语言支持面向对象编程C. C语言支持结构化编程D. C语言具有丰富的库函数答案:B1.2 在C语言中,以下哪个关键字用于定义一个函数?A. structB. intC. voidD. function答案:C1.3 下列选项中,哪个不是C语言中的合法变量名?A. _myVarB. myVar2C. 2ndVarD. var$答案:D2. 填空题2.1 在C语言中,用于定义一个整型变量的关键字是______。
答案:int2.2 C语言中,用于输入数据的库函数是______。
答案:scanf2.3 C语言中,用于输出数据的库函数是______。
答案:printf3. 简答题3.1 简述C语言中数组的定义方式。
答案:在C语言中,数组可以通过指定数据类型和数组大小来定义。
例如,定义一个整型数组可以写作:int arrayName[arraySize];。
3.2 解释C语言中的指针是什么,并给出一个指针的定义示例。
答案:指针是一种变量,它存储的是另一个变量的内存地址。
定义指针的示例:int *ptr; 这里ptr是一个整型指针。
4. 编程题4.1 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```4.2 编写一个C语言函数,实现字符串反转的功能。
答案:```cvoid reverseString(char *str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```。
C语言程序练习题一、选择题1.高级语言编写的程序称()。
A.高级程序B.源程序C.目标程序D.BASIC程序2. 一个C程序的执行是从()。
A.本程序的main函数开始,到main函数结束。
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序的main函数结束3. 以下叙述正确的是()。
A.在C程序中,main函数必须位于程序的最前面B. C程序的每行中只能写一条语句C. C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误4. 以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C. C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面5.下列字符中属于键盘符号的是()。
A.\ B.\n C.\t D.\b6.下列不正确的转义字符是()。
A.\\ B. \’ C.074 D.\07.下面四组选项中,均是合法的转义字符的选项是()。
A.‘\’’‘\\’‘\n’B.‘\’‘\017’‘\”’C.‘\018’‘\f ’‘xab’D.‘\\0’‘\101’‘x1f’8.下面四组选项中,均是不正确的八进制数或十六进制数的选项是()。
A. 016 0x8f 018B. oabc 017 0xaC. 010 -0x11 0x16D. 0a12 7ff -1239.不是C语言提供的合法关键字是()。
A.switchB.cherC.caseD.default10.C语言提供的合法关键字是()。
A.nextB.stringC.do caseD.struct11.下面四组选项中,均是C语言关键字的选项是()。
A auto enum includeB switch typedef continueC signed union scanfD if struct type12.下列不正确的标识符是()。
一、判断题˅˅1、所谓常量,就是在程序运行过程中其值可以改变的量。
()2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。
()3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。
()4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。
()5、C语言中所有字符串都是以‘\0’结束的。
()6、do-while构成的循环语句中的循环体最少执行1次。
()7、数组名在C语言中表示的是数组的首地址。
()8、使用gets()函数输入字符串时可以在字符串中输入空格。
()9、算术运算符中‘/’的优先级高于‘%’。
()10、char a[5];该语句表明数组a中的第五个元素为a[5]。
()11、C语言源程序文件的扩展名均为.c。
()12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。
()13、C语言程序区分大小写,字符常量必须定义为大写。
()14、若int i=10,j=2;则执行i*=j+8;后i的值为28。
()16、c语言中的标识符只能由字母,数字和下划线三种字符组成。
()17、函数getchar()的作用是:输出一个字符。
()18、一个C语言程序总是从第一个函数开始执行。
()19、在c语言中,char型数据在内存中是以ASCII码形式存储的。
()20、在C语言中switch语句必须使用break语句。
()二、选择题1、以下说法正确的是()。
A、C语言程序总是从第一个函数开始执行。
B、C语言程序中要调用的函数必须在main()函数中定义。
C、C语言程序总是从main()函数开始执行。
D、C语言程序中的main()函数必须放在程序的开始部分。
2、以下几组选项中为合法的标识符是()。
A、intB、floatC、b-aD、_1233、以下定义字符常量PI语句正确的为()A、define PI 3.14B、#define PI 3.14C、#define PI=3.14D、#define PI 3.14;4、起换行作用的转义字符是()A、‟\t‟B、‟\b‟C、‟\n‟D、‟\r‟5、在以下几组运算符中,优先级最高的运算符是()。
C语言程序设计复习题库文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]一、填空1.break语句通常用于switch。
2.C语言源程序经过连接后,生成文件的后缀名是.exe。
C语言中,关系表达式和逻辑表达式的值是1数B.标识符C.表达式D.语句2、在每个C程序中都必须包含有这样一个函数,该函数的函数名为A3、C语言规定,在一个源程序中,main函数的位置CA.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后4、在以下关于C语言的注释的叙述中,不正确的是CA.注释可用"/*"、"*/"形式表示,也可用"引文件和文本文件两种B.目标文件和可执行文件C.二进制文件一种码文件和二进制文件两种9、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符CA)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字或下划线中的任意一种10、C语言中非空的基本数据类型包括BA)整型,实型,逻辑型B)整型,实型,字符型C)整型,字符型,逻辑型D)整型,实型,逻辑型,字符型11、下列哪一个表达式的值是整数类型A2+、设变量a是整形,f是实型,i是双精度型,则表达式10+′a′+i*f值的数据类型C不确定13、设有说明:charw;intx;floaty;doublez;则表达式:w*x+z-y值的数据类型DA)floatB)charC)intD)double14、在C语言中,char型数据在内存中的存储形式是DA.补码B.反码C.源码码15、下列字符列中,可以作为“字符串常量”的是BA.ABCB.″xyz″C.′uvw′D.′a′16、以下运算符中,优先级最高的运算符是DA.=B.!=C.*(乘号)D.()17、设有定义intk=0;则以下四个表达式中与其它三个的值不同的是CDA、k++B、k+=1C、++kD、k+118、设有语句scanf(“%d,%d”,&m,&n);要使m、n的值依次为2,3,正确的输入是B3↙,3↙;↙3↙19、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后c2中的值为AA)D B)68 C)不确定的值D)C20、设a=6,b=4,则表达式b*=a+3的值为DA)3B)18C)27D)3621、若有定义:inta=8,b=5,c;执行语句c=a/b+;后c的值为B(A)(B)1(C)(D)222、若已定义x和y是整型变量,x=2;,则表达式y=+x/2的值是CA)5C)3D)23、设有以下语句:intx=10;x+=3+x%(3),则x的值是AA)14B)15C)11D)1224、在C语言中逻辑值“真”是用B表示的。
C语言程序设计(2)复习题判断题:●C程序是由函数构成的,每一个函数完成相对独立的功能。
()●被main函数调用的函数只能是库函数。
()●定义函数时,必须要有形参和返回值。
()●在C程序中,main函数和自定义的函数都可以有多个。
()●函数必须有return语句。
()●语句return(a,b);则函数可以返回两个值。
()●传值调用时,在函数中形参变量值改变后,不改变实参变量的值。
()●函数的递归调用不过是一个函数直接或间接地调用它自身。
()●在 C 程序中 , 函数既可以嵌套定义,也可以嵌套调用。
()●传值调用的形参只有在被调用时,才被创建(分配存储单元)。
()●自定义函数中若缺省函数值类型,则隐含的类型是int。
()●定义为void类型的函数,其含义是调用函数后,函数的返回值为任意的类型。
()●C语言程序中,若实参是变量,当调用函数时实参和形参各占一个独立的存储单元。
()●在C语言中,所有函数之间都可以相互调用。
()●void类型的函数一定无形参。
()●C语言规定,实参应与其对应的形参类型一致。
()●构成数组的各个元素的数据类型不一定要相同。
()●数组元素的下标必须是整数,不能用实数。
()●系统判断字符串结束的标志是’\n’。
()●定义数组后,可通过赋值运算符=对该数组名直接赋值。
例如:int a[5]; a={1,2,3,4,5};()●若有定义语句“int a[10];”则a[10-9/2] 是合法的数组元素。
()●若有定义:double a[10]={1.1,2.5},i=1;则a[i]为2.5。
()●语句int N=10; int a[N];可以正确定义数组a。
()●有定义:int a[10]={1,2,3,4,5};则a[5]为0。
()●有数组定义int a[3][3]={{1},{2,3}};,则a[3][3]的值为0。
()●若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维大小是3。
一、单项选择题1.C程序的基本单位是(B )。
A.语句B.函数C.编译体D.源程序2.C语言程序中必须有的函数是( B )。
A.#include "stdio.h" B.mainC.printf D.scanf3.C语言程序编译时,程序中的注释部分将(D )。
A.参加编译,并会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.不参加编译,也不会出现在目标程序中4.一个C程序的执行是从(A )。
A.本程序的main函数开始,到main函数结束。
B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C.本程序文件的main开始,到本程序文件的最后一个函数结束。
D.本程序文件的第一个函数开始,到本程序文件的main函数结束。
5. 以下选项中不属于C语言整常数形式的是( B )。
A.十进制整数B.二进制整数C.八进制整数D.十六进制整数6.判断char型变量ch是否为数字字符的正确表达式是(D )。
A.'0'<=ch<='9' B.(ch>=0)&&(ch<=9)C.('0'<=ch)AND('9'>=ch) D.(ch>='0')&&(ch<='9')7.下列数据中,不合法的C语言实型数据的是(C )。
A.0.123 B.123e3 C.2.1e3.5 D.789.08.在以下一组运算符中,优先级最高的运算符是(C )。
A.<=B.=C.%D.&&9.有定义int a=8,b=5,c; 执行语句c=a/b+0.4;后,c的值为(B )。
A.1.4 B.1C.2.0 D.210.若变量已正确定义,语句“if(a>b) k=0; else k=1;”和( C )等价。
A.k=(a>b)?1:0; B.k=a>b;C.k=a<=b; D.a<=b ? 0 : 1;11.C语言中运算对象必须是整型的运算符是( A )。
A.%= B./ C.= D.<=12.逻辑运算符两侧运算对象的数据类型(C )。
A.只能是0或1 B.只能是整型或字符型数据C.可以是任何类型的数据D.只能是0或非0整数13.下列程序的输出结果是( D )。
fun(int a, int b, int c){ c =a*b; }void main( ){ int c;fun(2,3,c);printf(”%d\n”,c);}A.0 B.1C.6 D.无法确定14.已知int a[3][4];下列哪一项不是数组a的首地址(D )。
A.a B.&a[0][0] C.a[0] D.a[0][0] 15.设变量定义为“int a[4];”,则表达式(D )不符合C语言语法。
A.*a B.a[0] C.a D.a++16.字符串"hello"在内存中占用的字节数是( A )。
A.6 B.5 C.4 D.317.下列描述中不正确的是( C )。
A.字符型数组中可以存放字符串B.可以对字符型数组进行整体输入、输出C.可以对整型数组进行整体输入、输出D.不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值18.有如下程序,该程序的输出的结果是( D )。
#include<stdio.h>int func(int a,int b){ return(a+b);}void main( ){ int x=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}A.12 B.13 C.14 D.1519.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为( C )。
A.int B.float C.double D.不确定20.若有说明语句:char c=’\72’;则变量c( A )。
A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法,c的值不确定21.有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A )。
A.无限次B.有语法错,不能执行C.一次也不执行D.执行1次22.在C语言中,退格符是( D )。
A.\n B.\t C.\f D.\b23.以下错误的说法是:函数调用可以(D )。
A.出现在执行语句中B.出现在一个表达式中C.作为一个函数的实参D.作为一个函数的形参24.在C语言中,( A )是变量缺省的存储类型。
A.auto B.registerC.static D.extern25.以下叙述中正确的是( C )。
A.break语句只能用于switch语句中B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环C.break 语句只能用在循环体内和switch语句体内D.在循环体内使用break语句和continue语句的作用相同26. 对于for循环语句,以下表示错误的是(C )。
A.表达式1可以省略,其后的分号不能省略。
B.表达式2可以省略,其后的分号不能省略。
C.表达式1、表达式2和表达式3不可以同时省略。
D.表达式3可以省略。
27.下面有关for循环的正确描述是( D )。
A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来28.对for (表达式1; ;表达式3 )可理解为( B )。
A.for (表达式1;0;表达式3) B.for (表达式1;1 ;表达式3)C.for (表达式1;表达式1;表达式3)D.for (表达式1;表达式3;表达式3) 29.以下四个关于C语言的结论中,只有一个是错误的,它是( D )。
A.可以用while语句实现的循环一定可以用for语句实现B.可以用for语句实现的循环一定可以用while语句实现C.可以用do-while语句实现的循环一定可以用while语句实现D.do-while语句与while语句的区别仅是关键字”while”出现的地方不同30.执行下面程序段的结果是( D )。
int x=0;do { printf(“%2d”,x--);}while(x);A.打印出321 B.打印出23C.不打印任何结果D.陷入死循环31.若有说明int a[3][4]={0};则下面叙述正确的是(D )。
A.只有元素a[0][0]可得到初值0B.此说明语句不正确C.数组a中各元素都可得到初值,但其值不一定为0D.数组a中各元素都可得到初值032.以下程序的输出结果是( C )。
fun(int x, int y, int z){ z=x*x+y*y; }void main(){ int a=31;fun(5,2,a);printf("%d",a);}A.0 B.29 C.31 D.无定值33.有以下函数定义:void fun(int n,double x){……}若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是( C )。
A.fun(int y,double m); B.k=fun(10,12.5);C.fun(x,n); D.void fun(n,x);34.以下程序的输出结果是( B )。
int a, b;void fun(){ a=100; b=200; }void main(){int a=5, b=7;fun();printf("%d%d \n", a,b);}A.100200 B.57 C.200100 D.7535.若有以下定义,则p+3表示( A )。
int a[6] , *p=a;A.元素a[3]的地址B.元素a[3]的值C.元素a[4]的地址D.元素a[4]的值36. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与( C )组成配对关系。
A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前尚未配对的最近的ifD.同一行上的if37.定义了一维int型数组a[10]后,下面错误的引用是( B )。
A.a[0]=1; B.a[10]=2; C.a[0]=5*2; D.a[1]=a[2]*a[0]; 38.在C语言中,变量的指针是指该变量的(C )。
A.值B.名C.地址D.一个标志39.已知:char str[10],*p=str; 下面的语句中正确的是( B )。
A.str="ABC"; B.p="ABC";C.*str="ABC"; D.*p="ABC";40.下列程序段中调用fun函数传送实参a和b;main( ){char a[10],b[10];…fun(a,b);…}则在fun函数首部中,对形参错误的定义是( A )。
A.fun(char a[10],b[10]) {…}B.fun(char a1[ ], char a2[ ]){…}C.fun(char p[10],char q[10]) {…}D.fun(char s1[4],char s2[4]) {…}二、填空题1、C语言中的变量从变量的作用范围可分为:局部变量和全局变量。
2、设int x=1/5,则x的值为 0 。
3、C语言中的标识符只能由字母、下划线和数字组成。
4、每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。
5、设 a、b、c、d、m、n均为 int型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值为 2 。
6、已知:int i=8,j=10,m,n;m=++i;n=j++;问语句执行后m=9 ,n=107、能正确表达逻辑关系:5≤x≤150的C语言表达式是x>=5&&x<=158、int x=2;z=x++; 则x的值为 39、已知a=12,则表达式a+=a-=a*=a的结果是__0_。
10、设a=2,b=3,c=4,则下列逻辑表达式a || b+c && b-c的值是 1 。
11、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。
12、有float f=3.1415927; 则 printf(“%5.3f”, f );输出的结果是__3.142__。