C语言程序设计试题
- 格式:docx
- 大小:39.22 KB
- 文档页数:14
C语言程序设计试题及参考答案精心整理c语言程序设计一、选择题(共40分,每小题2分)1、以下叙述不正确的是(d)a、一个c源程序可以由一个或多个函数共同组成b、一个c源程序必须涵盖一个main函数c、c程序的基本共同组成单位就是函数d、在c程序中,注释说明只能位于一条语句的后面2、以下四个选项中,就是不合法的用户标识符的选项就是(b)a、abcb、12acc、sund、a3、建有语句inta=4;则继续执行了语句a+=a-=a*a后,变量a的值就是(a)a、-24b、0c、4d、164、以下运算符中优先级最低的就是(b)a、a、inputx、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);9、假定从键盘输入23456,下面程序的输出结果是:(c)voidmain(){intm,n;scanf(“-=”,&m,&n);printf(“m=%dn=%d\\n”,m,n);}a、m=23n=45b、m=234n=56c、m=23n=456d、语句有错误10、若运转时,给变量x输出12,则以下程序的运转结果就是(a)main(){intx,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\\n”,y);}精心整理a、0b、22c、12d、1011、c语言中while和do-while循环的主要区别(a)a、do-while的循环体至少继续执行一次b、while的循环控制条件比do-while的循环控制条件严格c、do-while允许从外部转到循环体内d、do-while的循环体不能是复合语句12、以下对二维数组的恰当表明的语句就是(c)a、inta[3][]b、floata(3,4)c、doublea[3][4]d、floata(3)(4)13、以下程序的输出结果是(c)main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf(“%d”,x[i][2-i]);}a、1,5,9b、1,4,7c、3,5,7d、3,6,914、以下能对一维数组a进行正确初始化的语句是(c)a、inta[10]=(0,0,0,0,0);b、inta[10]={};c、inta[10]={0};d、inta[10]={10*1};15、以下程序执行后的输出结果是:(a)intfun(inta,intb,intc){a=456;b=567;c=678;}voidmain(){intx=10,y=20,z=30;z=fun(x,y,z);printf(“%d,%d,%d\\n”,z,y,x);}a、30,20,10b、10,20,30c、10,30,50d、10,30,4016、以下说法正确的是(a)如果在一个函数中的复合语句中定义了一个变量,则该变量a、只在该复合语句中有效b、在该函数中有效c、在本程序范围内有效d、为非法变量17、以下函数调用语句中含有的实参个数为(b)func((exp1,exp2,exp3),(exp4,exp5));a、1b、2c、4d、518、在c语言程序中,以下观点恰当的就是(b)。
C语言程序设计试题第1、2、3章 概述、类型、表达式一、选择题1、 一个C程序由若干个C函数组成,各个函数在文件中的位置顺序为:( )A、 任意B、 第一个函数必须是主函数,其他函数任意C、 必须完全按照执行的顺序排列D、 其他函数可以任意,主函数必须在最后2、 下列四个叙述中,正确的是:( )A、 C程序中的所有字母都必须小写B、 C程序中的关键字必须小写,其他标示符不区分大小写C、 C程序中的所有字母都不区分大小写D、 C语言中的所有关键字必须小写3、 下列四个叙述中,错误的是:( )A、 一个C源程序必须有且只能有一个主函数B、 一个C源程序可以有多个函数C、 在C源程序中注释说明必须位于语句之后D、 C源程序的基本结构是函数4、 下面不是C语言合法标识符的是:( )A、abcB、5nC、_4mD、x35、 以下叙述不正确的是:( )A. 分号是C语句的必要组成部分B. C程序的注释可以写在语句的后面C. 函数是C程序的基本单位D. 主函数的名字不一定非用main来表示6、 C语言中允许的基本数据类型包括:( )A. 整型、实型、逻辑型B. 整型、实型、字符型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型、字符型7、 C语言中能用八进制表示的数据类型为:( )A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、 下列属于C语言合法的字符常数是:( )A、’\97’B、”A”C、’\t’D、”\0”9、 在C语言(VC环境)中,5种基本数据类型的存储空间长度的排列顺序为:( )A、char<int<=long int <=float<doubleB、char=int<long int <=float<doubleC、char<int<long int=float=doubleD、char=int=<long int <=float<double10、 在C语言中(VC环境),一定是长整型常数的是:( )A、0LB、4962710C、0412765D、0xa34b7fe11、 若有以下定义语句char c1=’b’, c2=’e’;printf(“%d,%c\n”,c2-c1,c2-‘a’+’A’);则输出结果是:( )A、2,MB、3,EC、2,ED、输出项与相应的格式控制不一致,输出结果不确定12、 以下合法的赋值语句是:( )A、x=y=100B、d--;C、x + yD、c = int(a+b);13、 设变量t为int型,下列选项中不正确的赋值语句是:( )A、++t;B、n1=(n2=(n3=0));C、k=i==m;D、a=b+c=1;14、 在以下一组运算符中,优先级最高的是:( )A、<=B、==C、%D、&&15、 下列能正确表示a≥10或a≤0的关系表达式是:( )A、a>=10 or a<=0B、a<=10 || a>=0C、a>=10 || a<=0D、a>=10 && a<=016、 下列只有当整数x为奇数时,其值为“真”的表达式是:( )A、x%2==0B、!(x%2==0)C、(x-x/2*2)==0D、! (x%2)17、 设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:( )A、1 0< a < 15B、!(a<=10 || a>=15)C、a>10 && a<15D、!(a<=10) && !(a>=15)18、 已知x=43, ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是:( )A、0B、语法错C、1D、“假”19、 表达式17%4 /8的值为:( )A、0B、1C、2D、320、 语句printf(“%d”,(a=2)&&(b= -2));的输出结果是:( )A、无输出B、结果不确定C、-1D、121、 一个可执行的C程序的开始执行点是:( )A. 程序中的第一个语句B. 包含文件中的第一个函数C. 名为main的函数D. 程序中的第一个函数22、 组成C语句的一个必不可少的符号是:( )A. 逗号B. 引号C. 冒号D. 分号23、 若将int、long、float等类型的数据进行混合运算,其结果的数据类型是:( )A. intB. longC. floatD. double24、 下述是C语言中有关变量定义的几个说法,正确的是:( )A. 变量可以不定义直接使用B. 一个说明语句只能定义一个变量C. 几个不同类型的变量可在同一语句中定义D. 变量可以在定义时进行初绐化25、 与x * = y + z等价的赋值表达式是:( )A. x = y + zB. x = x * y + zC. x = x * (y + z)D. x = x + y * z26、 当代电子计算机能够自动地处理指定的问题是因为:( )A.计算机是电动的B.有解决该问题的计算机程序C.事先存储了解决该问题的程序D.以上都不是27、 以下叙述中最准确的是:( )A.计算机程序是处理某一问题所有指令的集合B.计算机程序是处理某一问题所用到的所有数据的集合C.计算机程序是处理某一问题的所有指令及其数据的集合D.计算机程序是处理某一问题的所有指令及其数据的有序集合28、 关于计算机程序设计,以下描述最准确的是:( )A.程序设计就是用语言来编写程序B.程序设计就是用计算机语言来编写程序C.程序设计就是用计算机程序设计语言来编写程序D.程序设计就是用计算机能识别的语言来编写程序29、 目前编写计算机程序一般采用的是:( )A.机器语言 B.汇编语言 C.高级语言 D.英语30、 设计一个计算机程序最基本的工作是:( )A.制定正确的算法 B.选择合理的数据结构C.制定正确的算法和选择合理的数据结构 D.以上都不是31、 算法具有五个特性,以下选项中不属于算法特性的是:( )A.有穷性 B.简洁性 C.可行性 D.确定性32、 下述哪一个不是结构化程序基本结构:( )A.顺序 B.选择 C.循环 D.嵌套33、 C语言是一种:( )A.机器语言 B.汇编语言 C.高级语言 D.以上都不是34、 C语言源程序的扩展名为:( )A..exe B..c C..obj D..cpp35、 C程序编译后最终产生(即计算机执行)的文件的扩展名为()A..exe B..c C..obj D..cpp36、 下列各项中,不是C语言的特点是:( )A.语言简洁、紧凑,使用方便B.程序执行效率高,可移植性好C.能实现汇编语言的大多数功能D.有较强的网络操作功能37、 构成C语言源程序的基本单位是:( ) A.子程序 B.过程 C.文本 D.函数38、 下列叙述正确的是:( )A.C语言源程序可以直接在DOS环境中运行B.编译C语言源程序得到的目标文件可以直接在DOS环境中运行C.C语言源程序经过编译、连接得到的可执行程序可以直接在DOS环境中运行D.C语言源程序可以直接在VC++环境中运行39、 某C程序由一个主函数main()和一个自定义函数max()组成,则该程序:( )A.写在前面的函数先开始执行B.总是从main()函数开始执行C.总是从max()函数开始执行D.写在后面的函数先开始执行40、 以下叙述不正确的是:( )A.分号是C语句的必要组成部分B.C程序的注释可以写在语句的后面C.函数是C程序的基本单位D.主函数的名字不一定用mian表示41、 以下为C语句的是:( )A.a=8 B.a++; C.if(a>8) D.#include <stdio.h>以下不是C语句的是:( )A.a=8; B.a++; C.if(a>8); D.for(i=1;i<5;i++)42、 以下所列语句中,合法的语句是:( )A.a=1,b=2 B.++a; C.a=a+1=5 D.y=int(a);43、 C程序中的复合语句指的是:( )A.并列的多个C语句 B.写在同一行中的多个C 语句C.用一对大括号对括的多个C语句 D.就是函数体中的语句44、 当一个很长的C语句(中间无字符串)在一行写不下(超出屏幕的宽度)时,应该:( )A.由系统自动换行 B.立即按回车键换行C.在任意一个空格处按回车键换行D.输入一个分号后并按回车键换行换行45、 在x值处于-2~2,4~8时值为“真”,否则为“假”的表达式是:( )。
C语言程序设计考试试卷C语言程序设计考试试卷第一卷说明:(1)第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。
(2)答本卷的题目时,要在标准答题纸上编号对应的栏口中,用铅笔将正确答案涂黑。
在试题上直接勾划不得分。
(3)本卷共分70分,其中第1—26题每题2分,第27—32题每题3分。
第一部分:基础知识(20题,共40分)1、一个C语言的源程序中,(A )。
(A)必须有一个主函数(B)可以有多个主函数(C)必须有主函数和其他函数(D)可以没有主函数2、下列数据中,为字符串常量的是(B )。
(A)‘A’(B)“house”(C)How do you do.(D)’$abc’3、若有定义:int a=8,b=5,c;,执行语句c=a/b十0.4;后,c的值为(B )。
(A)1.4 (B)1 (C)2.0 (D)24、设有int x=11;则表达式(x++*l/3)的值为(A )。
(A)3 (B)4 (C)11 (D)125、执行x=5>1+2&&2||2*4<4-!0后,x的值为( C )。
(A)-l (B)O (C)1 (D)56、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子:(x)/(y×z)的c语言表达式是(A)。
(A)x/y*z (B)x*(1/(y*z)) (C) x/y*1/z (D)x/y/z7、设有以下说明语句struct ex{int x;float y; char z;}example;则下面的叙述不正确的是( B )。
(A)struct是结构体类型的关键字(B)example是结构体类型名(C)x,y,z都是结构体成员名(D)struct ex是结构体类型8、假定w、x、y、z、m均为int型变量;有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是( D )。
第一局部C语言根底一、选择题1.以下正确的C语言标识符是〔〕A.%X B.a+b C.a123 D.test!2.已定义int a,b;那么以下不正确的C语句是〔〕A.a*=5; B.b/=2; C.a+=1.75; D.b&&=a;3.假设x、i、j和k都是整型变量,那么执行下面表达式后x的值为〔〕x=(i=4,j=16,k=32)A.4 B.16 C.32 D.524.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符〔〕A.必须是字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字、下划线中的任一字符5.下面正确的字符常量是〔〕A.“c〞 B.’\\〞C.‘w’D.〞6.设int a=2,b=0,c;那么执行语句c+=b&&a--后, c的结果为〔〕。
A.0,1 B.1,0 C.2,0 D.不确定7. 以下不正确的C语言标识符是( )A) intB) a_1_2C) ab1exeD) _x8.以下是正确的C语言标识符是( )。
A) #defineB) _123C) %dD) \n9.以下四组字符串中都可以用作C语言程序标识符的一组是( ) 。
A)print B) i\am C) Pxq D) str_l_3d one_half My->book Cpp••• oodbs tart$it line# pow10.下面各选项组中,均是C语言关键字的组是( ) 。
A) auto,enum,includeB) switch,typedef,continueC) signed,union,scanfD) if,struct,type11.以下不属于C语言关键字的是( ) 。
A) defaultB) registerC) enumD) external12.C语言程序从main()函数开始执行,所以这个函数要写在( )。
A) 程序文件的开始B) 程序文件的最后C) 它所调用的函数的前面D) 程序文件的任何位置13.以下关于C语言的表达错误的选项是( )A) 大写字母和小写字母的意义相同B) 不同类型的变量可以在一个表达式中C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义14.在C语言中,错误的int类型的常数是( ) 。
(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。
#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。
#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。
C语言程序设计习题及答案C语言基础一:1.下列四组选项中,均不是C语言关健字的选项是( A )。
A)define B)gect C)include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)—0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x〈〈02>〉B>>23。
下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"’ B)'\1011’ C)'\011’ D)'\abc’’\\’ '\’ ’\f’ ’\101’'xf’ ’\A' '\}' 'x1f’4.下面不正确的字符串常量是(A )。
A)'abc’ B)”12’12" C)”0" D)” "5.以下选项中不合法的用户标识符是( A )。
A)abc。
c B)file C)Main D)PRINT6。
C语言提供的合法关键字是( D )。
A) swithB)cherC)Case).Default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del—word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真”的表示是用( C )。
A)true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092’;则该语句( B )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。
A)1 B)2 C)8 D)411已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=’A’+'6’-’3’后,c2中的值为( A )。
c语言程序设计试题及答案C语言程序设计试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable-2答案:C2. 以下哪个语句不是C语言中的输入语句?A. scanf("%d", &x);B. printf("%d", x);C. gets("string");D. getchar();答案:B3. C语言中,以下哪个不是标准库函数?A. printf()B. malloc()C. strcpy()D. main()答案:D4. 以下哪个选项是C语言中正确的数组声明?A. int array[];B. int [10] array;C. int array[10];D. int [10] = array;答案:C5. 以下哪个是C语言中正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello World"答案:C6. C语言中,以下哪个是正确的函数声明?A. int function();B. void myFunction(int x, int y);C. int myFunction(int x, int y) {}D. int myFunction(int x, int y) { return x + y; }答案:B7. 在C语言中,以下哪个是正确的条件语句?A. if (x = 5)B. if (x == 5)C. if (x = 5) { x++; }D. if (x == 5) { x++; }答案:D8. 在C语言中,以下哪个是正确的循环语句?A. for (int i = 0; i <= 10; i++) {}B. for (int i = 0; i < 10; i--) {}C. while (x != 0) { x--; }D. do { x++; } while (x != 0);答案:D9. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. *int ptr;C. int ptr*;D. int * ptr;答案:A10. C语言中,以下哪个不是运算符?A. +B. -C. :D. *答案:C二、简答题(每题5分,共30分)1. 请简述C语言中数组和指针的区别。
c语言程序设计试题及答案第一章基础知识一、填空1.每个C程序都必须有且仅有一个________函数。
2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。
3.软件是程序,以及______、使用和维护所需要的所有文档。
4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。
5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类6.C语言是由________组成的。
7.C语言的函数可分为主函数main、标准库函数和_________。
8.一个函数是由两部分组成的,即:________和函数体。
9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。
10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。
不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。
11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。
12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。
13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。
14.C程序的执行均是由执行_________开始。
15.函数体即为包含在{}内的部分。
它分为________和为完成功能任务由若干个C语句组成的执行部分。
16.C语言程序中一条简单语句是以________字符作为结束符的。
17.C语言是结构化、________的程序设计语言。
C语言程序设计试题_练习题一、选择题:(20分,每题2分)1.以下不正确的C语言标识符是()。
A.ABCB.abcC.a_bcD.ab.c2.C程序是由构成的。
A.主程序与子程序B.主函数与若干子函数C.一个主函数与一个其它函数D.主函数与子函数3.以下说法中正确的是:A.在C语言中,实参与其对应的形参各占独立的存储单元;B.在C语言中,实参与其对应的形参共占同一个存储单元;C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;D.在C语言中,形参是虚拟的,不占存储单元。
4.设n=3;则n++的结果是()。
A.2B.3C.4D.55.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是()。
A.0B.1C.2D.36.凡是函数中未指定存储类别的局部变量其隐含的存储类别是()。
A.自动(auto)B.静态(tatic)C.外部(e某tern)D.寄存器(regiter)7.在while(某)语句中的某与下面条件表达式等价的是:A.某==0B.某==1C.某!=1D.某!=08.若有以下说明和语句:tructworker{intno;~char某name;}work,某p=&work;则以下引用方法不正确的是()。
A.work.noB.(某p).noC.p->noD.work->no9.以下对二维数组进行正确初始化的是()。
A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.int a[2][]={1,2,3,4,5,6};D.inta[2][]={{1,2},{3,4}};10.二维数组a有m列,则在a[i][j]之前的元素个数为:A)j某m+iB)i某m+jC)i某m+j-1二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分)1.#include<tdio.h>main(){inti=16,j,某=6;j=i+++1;某某=i=j;printf(“%d,%d\n”,j,某);}运行结果是:2.#include<tdio.h>#include<math.h>main(){inta=1,b=4,c=2;float某=10.5,y=4.0,z;z=(a+b)/c+qrt((double)y)某1.2/c+某;printf(“%f\n”,z);}运行结果是:3.#include<tdio.h>main(){inta,b,c,d;a=c=0;b=1;d=20;if(a)d=d-10;eleif(!b)if(!c)d=25;eled=15;printf(“d=%d\n”,d);}运行结果:4.main(){inti=10;witch(i){cae9:i+=1;cae10:i+=1;cae11:i+=1;}printf(“%d”,i);}运行结果:5.#include<tdio.h>main(){inta[]={1,2,3,4},i,j,=0;j=1;for(i=3;i>=0;i--){=+a[i]某j;j=j某10;}printf("=%d\n",);}运行结果:6.func(int某){某=20;}main(){int某=10;func(某);printf(“%d”,某);}运行结果:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
c程序设计考试题目及答案一、选择题(共10题,每题2分,共20分)1. C语言中,以下关键字不属于标准C语言关键字的是:A. forB. ifC. switchD. class答案:D2. 定义一个数组 int arr[5]={1,2,3,4,5},则 arr[2] 的值是:A. 2B. 3C. 4D. 5答案:C3. 在C语言中,以下哪个运算符用于求两个整数相除后的余数:A. %B. /C. ^答案:A4. 下列选项中,不属于C语言中的控制流语句的是:A. whileB. continueC. gotoD. delete答案:D5. 下列哪个函数用于输出到标准输出设备(默认为显示器):A. getchar()B. scanf()C. puts()D. fopen()答案:C6. 在C语言中,以下哪个运算符优先级最高:A. +B. =C. <<答案:C7. 在C语言中,以下哪个关键字用于定义新的结构体类型:A. typedefB. structC. voidD. extern答案:A8. 下列选项中,属于C语言中的数据类型的是:A. integerB. characterC. floatD. boolean答案:C9. C语言中,以下哪种循环结构可以确保至少执行一次循环体:A. for循环B. while循环C. do...while循环D. if...else语句答案:C10. 函数原型声明的作用是:A. 定义函数的实现B. 声明函数的返回值类型C. 声明函数的参数类型和个数D. 控制函数的调用顺序答案:C二、编程题(共2题,每题40分,共80分)题目1:请编写一个C程序,实现以下功能:1. 定义一个结构体类型Student,包含以下成员:- char name[20]:表示学生姓名- int age:表示学生年龄2. 定义一个函数inputStudent,用于输入学生信息,函数原型如下: - void inputStudent(Student *student)3. 定义一个函数outputStudent,用于输出学生信息,函数原型如下: - void outputStudent(Student student)4. 在主函数中通过调用inputStudent和outputStudent函数,实现输入一个学生的信息并输出。
C语言程序设计试题一、选择题BCCBA BADAA1、以下叙述中错误的是(B)A.一个C语言程序只能有一个主函数B.C语言编写的每个函数都可以进行独立的编译并执行C.C语言编写的函数都可以作为一个独立的源程序文件D.C语言编写的函数源程序,其文件名后缀可以是C2、一个C语言程序是由(C)A.若干过程组成B.若干子程序组成C.函数组成D.一个主程序和若干子程序组成3、以下叙述正确的是(C)A.在C程序中,main函数必须位于程序的最前面B.在对一个C程序进行编译的过程中,可发现注释中的拼写错误C.C语言本身没有输入输出语句D.程序的每行中只能写一条语句4、以下叙述正确的是(B)A.C程序的书写格式是固定的,每行只能写一条语句B.C程序中注释部分可以单独占一行C.构成C程序的基本单位是函数,所有函数名都可以由用户命名D.在对C语言程序进行编译时,可以发现注释行的拼写错误5、以下叙述不正确的是(A)A.在C语言中,注释说明只能位于一条语句的后面B.C程序的基本组成单位是函数C.一个C源程序可由一个或多个函数组成D.一个C源程序必须包含一个main函数6、以下关于结构化程序设计的叙述中正确的是(B)A.一个结构化程序必须同时由顺序、分支、循环三种结构构成B.在C语言中,程序的模块化是利用函数实现的C.由三种基本结构构成的程序只能解决小规模的问题D.结构化程序使用goto语句会很便捷7、以下叙述中错误的是(A)A.C语言编写的每个函数都可以进行独立的编译并执行B.C语言编写的函数源程序,其文件名后缀可以是CC.一个C语言程序只能有一个主函数D.C语言编写的函数都可以作为一个独立的源程序文件8、以下叙述中正确的是(D)A.C语言程序是由过程和函数组成的B.C语言函数不可以单独编译C.C语言中除了main函数,其它函数不可作为单独文件形式存在D.C语言函数可以嵌套调用9、计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是(A)A.C语言程序仅可以编译执行B.C语言程序仅可以解释执行C.其余说法都不对D.C语言程序既可以编译执行又可以解释执行10、C语言规定,在一个源程序中,main的位置(A)A.可以任意B.必须在最后C.必须在最开始D.必须在系统调用的库函数后面二、非选择题(包括程序设计、程序改错、程序填空,以下各章均是)1、若s是int型变量,s=6;则表达式s%2+(s+1)%2的值为_____【参考答案】1假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_____【参考答案】93、C语言中的标识符只能由三种字符组成,它们是_____,_____和_____【参考答案】字母、数字、下划线4、若a.b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为_____,b值为_____,c值为_____【参考答案】6、4、25、在C语言中,不带任何修饰符的浮点常量,是按_____类型数据存储的。
(答案直接填写在试卷上)一、选择题(每题2分,共50分)1. 在C 语言中,字符型数据在内存中是以( )形式存放的。
A.原码B.BCD 码C.反码D.ASCII 码 2. 若有以下类型说明语句 char w; int x; float y; double z;则表达式 w*x+z-y 的结果是()类型。
A.float B.char C.int D.double 3. 语句 char s='\092';的作用是( )A.s 包含1个字符B.说明不合法, s 的值不定。
C.使 s 包含4个字符D.使 s 包含3个字符 4. 在C 语言中,int, char, 和short 三种类型数据所占用的内存( ) A.均为2个字节 B.由用户自己定义 C.由所用机器的机器字长决定 D.是任意的 5. 以下()是不正确的转义字符。
A.'\\' B.'\' C.'081' D.'\0' 6. 以下述叙不正确的是( )A.一个C 源程序可以由一个或多个函数组成B.一个C 源程序必须包含一个main 函数C.C 程序的基本组成单位是函数D.在C 程序中注释说明只能位于一条语句的后面 7. 一个C 程序的执行是从( )A.本程序的main 函数开始,到main 函数结束B.本程序文件的第一个函数开始,到本程序的最后一个函数结束C.本程序的main 函数开始,到本程序的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main 函数结束 8. 若i, j 已定义为int 类型,则以下程序段中内循环体的总的执行次数是( )for (i=5; i; i--)for(j=0; j<4; j++) {...}A. 20B. 25C. 24D. 309. 若数组名作实参而指针变量作形参,函数调用实参传给形参的是 ( ) A.数组的长度 B.数组第一个元素的值 C.数组所有元素的值 D.数组第一个元素的地址10.若变量已正确定义并赋值,下面符合C 语言语法的表达式是( ) A. a:=b+1 B. a=b=c+2 C. int 18.5%3 D. a=a+7=c+b11. 有如下程序 main( ) { int y=3,x=3,z=1; printf(“%d %d \n”,(++x,y++),z+2);}运行该程序的输出结果是( ) A. 3 4 B. 4 2 C. 4 3 D. 3 3 12. 有如下程序 int 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); return 0; } 该程序的输出结果是( )A. a=2,b=1B. a=1,b=1C. a=1,b=0D. a=2,b=213. 有如下程序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.00000014.有如下程序main ( ){ int x=23;do{ printf(“%d”,x--);} while(!x); }该程序的执行结果是( )A. 321B. 23C. 不输出任何内容D. 陷入死循环15.设有说明语句:char a=’\72’;则变量a( )A. 包含1个字符B. 包含2个字符C. 包含3个字符D. 说明不合法16. 有如下程序int func(int a,int b){ return(a+b); }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. 1517. 有如下程序段int *p, a=10,b=1;p=&a; a=*p+b;执行该程序段后,a的值为( )A. 12B. 11C. 10D. 编译出错18. 在C语言中,函数的隐含存储类别是( )A. autoB. staticC. externD. 无存储类别19. 有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=a;则数值为9的表达式是( )A. *p+9B. *(p+8)C. *p+=9D. p+820.函数调用strcat(strcpy(str1,str2),str3)的功能是( )A. 将串str1复制到串str2中后再连接到串str3之后B. 将串str1连接到串str2之后再复制到串str3之后C. 将串str2复制到串str1中后再将串str3连接到串str1之后D. 将串str2连接到串str1之后再将串str1复制到串str3中21.有如下程序,输出的结果()#include<stdio.h>int main(){int i,j,x=0;for(i=0;i<=2;i++){x++;for(j=0;j<3;j++){if(j%2)continue;x++;}x++;}x++;printf(“%d\n”,x)return 0;}A. 12B.13C.14D.722. 该源程序执行后,屏幕上显示()void main(){int a;float b;a=4;b=9.5;printf("a=%d,b=%4.2f\n",a,b);}A. a=%d,b=%f\nB. a=%d,b=%fC. a=4,b=9.50D. a=4,b=9.523.已知有共用体变量data1定义如下:union data{ int i;char ch;float f;} data1; 则变量data1所占的内存存储空间可表示为()A. size of(int) B. size of(char) C. size of(float)D. size of(int)+size of(char)+size of(float)24. 下面语句执行完后,b的值为。
C 语言程序设计试题一、单项选择题1.下列不属于C 语言保留字的是( )A. char B while C typedef D look2.下列关于C 语言的叙述错误的是( ) A 英文字母大小写不加以区分 B 不同类型的变量可以出现在同一个表达式中C 在赋值表达中赋值号两边的类型可以不同D 某些运算在不同的场合可以有不同的含义 3.下列转义字符中错误的是( )A ‘\000’B ‘\14’C ‘\x111’D ‘\2’4.执行语句Printf(“%x ”,-1);后输出结果是( ) A -1 B –ffff C. 1 D ffff5.设float a=2,b=4,c=3;,以下C 语言表达式与代数式21(a+b )c 计算结果不一致的是( ) A (a+b )*c/2 B (1/2)*(a+b)*c C (a+b)*c*1/2 D c/2*(a+b) 6.设int a=10,b=20,c=30; 条件表达式a<ba=5:c 的值是( ) A 5 B 10 C 20 D 30 7.设int a=9,b=6,c;执行语句c=a/b+;后c 的值是( ) A 1 B C 2 D 8.执行语句for ( i+1; i++<4;);后i 的值是( )A 3B 4C 5D 不确定9.在运算中,操作数左移一位,其结果相当于操作数( )A 乘以2B 除以2C 乘以4D 除以410.使用语句scomf (“a=%f,b=%f ”,&a,&b );输入变量a 、b 的值(口代表空格),正确的是( )A ,B 口C a=,b=D a=口b=11、下列说法中错误的是:A 、C 语言中循环嵌套的层数没有限定B 、C 语言中的内部函数只能在本文件中被调用 C 、用typedef 语句定义的数据类型名称必须是大写字母D 、C 语言中的continue 语句,可以通过改变程序的结构而省略12、设char s[10],*p=s;,下列语句中错误的是:A 、p=s+5;B 、s=p+5;C 、s[2]=p[4];D 、*p=s[0];13、设enum week{sun,mon,tue,wed,thu,fri,sat}day;正确的赋值语句是: A 、sun=0; B 、sun=day; C 、mon=sun=1; D 、day=sun;14、若用数组中作为函数调用时的实参,则实际上传递给形参的是:A 、数组的第一个元素值B 、数组元素的个数C 、数组中全部元素的值D 、数组首地址 15、下列错误的是:A 、char s[ ]=“china ”;B 、char s[10]={“china ”};C 、char s[10];s=“china ”;D 、char s[10]={‘c ’, ‘h ’, ‘i ’, ‘n ’, ‘a ’};16、在C 语言中,有值函数的数据类型是指( )A 函数形式参数的数据类型B 函数返回值的数据类型C 调用该函数时的实参的数据类型D 任意指定的数据类型 17.设Struct {short a;char b; float c;}cs; 则 size of (cs)的值是( )A 4B 5C 6D 718.设int x[ ]={1,2,3,4,5,6,7,8,9,0},*p=x, k;且0≤k<10,则对数组元素x[k]的错误引用是( )A P+KB *(X+K)C X[ P-X=K]D *(&X[K])19.设 #define N 3#define Y((n) ((N+1)*n)则表达式2*(N+Y(5+1))的值是()A 42B 48C 54 D出错20.关于主函数的形式参数,下列说法正确的是()A 可以有两个B 类型可以是实型C 不可以由用户自己定义名字D 是在程序编译时获得实际值二、填空题21.可以将被函数中获得的值返回给主调函数的语句是()。
C语言程序设计考试试题(附答案) C语言程序设计考试试题(附答案)一、选择题(共30题,每题2分,共60分)1. 下列哪个是C语言关键字?A. printB. variableC. whileD. calculate答案:C2. 在C语言中,下列哪个是合法的变量名?A. 1_helloB. _worldC. v-ariableD. continue答案:B3. 下列哪个是正确的C语言注释方式?A. // This is a commentB. # This is a commentC. /* This is a comment */D. <!-- This is a comment -->答案:C4. 下列哪个是正确的C语言函数定义格式?A. void addNumbers()B. addNumbers()C. function addNumbers()D. int addNumbers()答案:D5. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;float result = x / y;printf("%f", result);return 0;}```A. 2.5B. 2C. 2.000000D. 5答案:B6. 在C语言中,下列哪个是正确的if语句格式?A. if (x > 4) thenB. if (x > 4) { }C. if x > 4D. if (x > 4)答案:D7. 下列哪个是C语言中的逻辑运算符?A. ++B. &&C. %D. =答案:B8. 在C语言中,下列哪个是正确的for循环格式?A. for (x = 0; x < 5)B. for {x = 0; x < 5; x++}C. for (int x = 0; x < 5; x++)D. for (x = 0; x < 5;)答案:C9. 下列哪个是C语言中的自增运算符?A. ++B. +=C. =D. --答案:A10. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;x *= 3 + 4;printf("%d", x);return 0;}```A. 14B. 20C. 21D. 22答案:C11. 在C语言中,下列哪个是正确的switch语句格式?A. switch (x) {case 1;case 2;break;default;break;}B. switch (x) {case 1:case 2:break;default:break;}C. switch (x) case 1:case 2:break;default:break; D. switch (x) { case 1,case 2,break,default,break,}答案:B12. 下列哪个是C语言中的逗号运算符?A. &&B. !C. ,D. |答案:C13. 在C语言中,下列哪个是正确的数组声明?A. array[5]B. [5] arrayC. array[] = [5]D. int array[5]答案:D14. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 0; i <= 5; i++){printf("%d ", i);if (i == 3)continue;}return 0;}```A. 0 1 2 3 4 5B. 0 1 2 3 4C. 0 1 2 3 4 5 6D. 0 1 2 4 5答案:A15. 下列哪个是C语言中的求余运算符?A. /B. +C. %D. *答案:C16. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 4;int y = 5;if (x > 2 || y < 10){printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 || y < 10D. 4 5答案:A17. 在C语言中,下列哪个是正确的do-while循环格式?A. do (x < 5)B. do {x < 5} whileC. do {x < 5} while (x++)D. do {x < 5;} while (x < 5)答案:D18. 下列哪个是C语言中的逻辑非运算符?A. !B. &&C. <D. =答案:A19. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 1; i <= 10; i++){if (i % 2 == 0)continue;printf("%d ", i);}return 0;}```A. 1 2 3 4 5 6 7 8 9 10B. 1 3 5 7 9C. 2 4 6 8 10D. 1 2 4 8答案:B20. 下列哪个是C语言中的减法运算符?B. +C. -D. *答案:C21. 在C语言中,下列哪个是正确的数组初始化方式?A. int array[5] = {1, 2, 3}B. array[5] = {1, 2, 3}C. int array[] = {1, 2, 3}D. int array[5] = {1, 2, 3,}答案:C22. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 7;if (x > 2 && y < 10)printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 & y < 10D. x > 2 || y < 10答案:A23. 下列哪个是C语言中的除法运算符?A. /B. +C. %答案:A24. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 7;int y = (x > 5) ? 10 : 5;printf("%d", y);return 0;}```A. 7B. 5C. 10D. 15答案:C25. 在C语言中,下列哪个是正确的while循环格式?A. while (x < 5;)B. while {x < 5;}C. while (x < 5)D. while {x < 5}答案:C26. 下列哪个是C语言中的位运算符?A. ||B. &&C. !D. &答案:D27. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;int y = 3;if (x = y){printf("Equal");}else{printf("Not equal");}return 0;}```A. EqualB. Not equalC. 2D. 3答案:A28. 在C语言中,下列哪个是正确的goto语句格式?A. goto label;B. goto (label);C. gote labelD. go to label答案:A29. 下列哪个是C语言中的加法运算符?A. /B. +C. %D. *答案:B30. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;int result = x % y;printf("%d", result);return 0;}A. 2B. 1C. 3D. 0答案:B二、编程题31. 编写一个C语言程序,在屏幕上输出从1到100的所有偶数。
一、程序设计共113题第1题题号:319#include ""void wwjt();int fun(int m){int i,k=1;if(m<=1) k=0;for(i=2;i<m;i++)if(m%i==0) k=0;return k;}第2题题号:351-----------功能:请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp 所指一维数组中。
二维数组中的数已在主函数中赋予。
#include<>#include<>#define M 3#define N 4void wwjt();void fun(int tt[M][N],intpp[N]){int i,j;for(j=0;j<N;j++){pp[j]=tt[0][j];for(i=1;i<M;i++)if(tt[i][j]>pp[j])pp[j]=tt[i][j];}第3题题号:375功能:从键盘上输入任意实数,求出其所对应的函数值。
z=e的x次幂(x>10)z=log(x+3) (x>-3)z=sin(x)/((cos(x)+4)#include <>#include<>void wwjt();double y(float x){double z;if(x>10) z=exp(x);else if(x>-3) z=log(x+3);else z=sin(x)/(cos(x)+4);return(z);}第4题题号:334功能:求给定正整数n以内的素数之积。
(n<28)#include <>#include""void wwjt();long fun(int n){long i,k;long s=1;for(i=2;i<=n;i++){for(k=2;k<i;k++)if(i%k==0)break; if(k==i)s=s*i;}return s;}第5题题号:333功能:计算并输出给定整数的所有因子之积(包括自身)。
C语言程序设计试题附答案3篇C语言程序设计试题附答案11. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'; B float a=b=10.0;C)int a=10,b= D)float a,b=4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i=0_______;i--){if(____i%17==0____④________) break;}printf("%d\n",__⑤_i____);}3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。
main(){ int i,a[20],sum,count;sum=count=0;for(i=0;i0)?? { count++;?? sum+= _a[i]__③___ ;?? }? }printf("sum=%d,count=%d\n",__sum④___,__⑤__count___);}4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。
c语言程序设计考试试题一、单项选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. intB. structC. floatD. char2. 下面哪个选项是C语言中的合法变量名?A. classB. 2variableC. variable_nameD. variable@name3. 在C语言中,一个整型变量默认占用多少字节的内存空间?A. 1B. 2C. 4D. 84. 下列哪个函数用于计算两个数的最大值?A. max(int a, int b)B. max(float a, float b)C. fmax(double a, double b)D. Both A and C5. C语言中,字符串常量存储在内存的哪个区域?A. 栈区(Stack)B. 堆区(Heap)C. 数据区(Data)D. 文本区(Text)6. 在C语言中,以下哪个操作符用于计算逻辑与?A. &&B. ||C. +=D. -=7. 下列哪个语句在C语言中用于实现循环?A. ifB. forC. switchD. do-while8. 在C语言中,指针变量的类型说明符是?A. *B. %C. &D. $9. 下列哪个函数用于将整数转换为字符串?A. atoiB. itoaC. sprintfD. Both A and B10. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function二、填空题(每空3分,共30分)11. 在C语言中,使用________关键字可以定义一个枚举类型。
12. 一个指向整型的指针变量所占用的内存大小是________字节。
13. 当需要频繁修改数组元素时,应使用________类型的数组,以提高程序的运行效率。
14. 在C语言中,________函数用于将字符串复制到另一个字符串中。
一、选择题1.int a=9, 则表达式 a%2 的值是。
A.4.5 B.4 C.3 D.12.下述对C语言字符数组的描述中错误的是:A.字符数组可以存放字符串B.字符数组中的字符串可以整体输入、输出C.不可以用关系运算符对字符数组中的字符串进行比较D.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值3.以下for 循环for(x=0;x<=8;x++)A.无限循环 B.循环7次C.循环8次 D.循环9次4.以下叙述中正确的是:A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用都可以嵌套5.设int x=1,sum=0;请在以下程序片段中选出能够实现从1累加到100功能的一项:A.while(x<=100) B.for(;x<100;x++)sum=sum+x ; sum=sum+x;C.do{sum+=x; x++} D.for(;x<=100;x++)while(x<=100); x=x+sum;6.有以下程序main(){int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for (i=0;i<3;i++){printf ("%d ",m[k][i]);}}执行后输出结果是A.2 5 8 B.4 5 6 C.3 6 9 D.7 8 97.若t为double类型,表达式t=1, t+5, t++的值是A.1.0 B.6.0 C.6 D.7.08.为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系A.缩排位置相同的if B.在其之前未配对的ifC.在其之前未配对的最近的if D.同一行上的if9.若有定义:int x, *pb; 则正确的赋值表达式是:A.pb=&x B.pb=x C.*pb=&x D.*pb=*x10.以下不正确的叙述是A.预处理命令行都必须以“#”号开始B.在程序中凡是以“#”号开始的语句行都是预处理命令行C.C程序在执行过程中对预处理命令行进行处理D.#define ABCD是正确的宏定义11.若有以下程序fun(int a, int b, int c){ c=a*b; }main(){ int c;fun(2,3,c);printf(“%d\n”,c);}执行后输出的结果是A.0 B.出错 C.6 D.无定值12.有以下程序void fun(int *x){ printf(“%d\n”,++*x); }main(){ int a=25;fun(&a); }A.23 B.24 C.25 D.2613.下列表达式中,值等于1的是A.!b || b B.b>b C.a!=a D.3%414.以下程序的输出结果是(strcpy(a,b)函数作用是将b的内容复制到a上;strcat(a,b)函数作用是将b连接到a后面)#include<ctype.h>main(){ char str[50]=”xyz”, p1[20]=”abcd”, *p2;p2=”ABCD”;strcpy(str+2, strcat(p1+2, p2+1));printf(“%s\n”,str); }A.xyabcAB B.abcABzC.Ababcz D.xycdBCD15.以下不合法的八进制数是:A.0 B.028 C.077 D.0116.下列叙述中正确的是A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类型D.C语言中既没有逻辑类型也没有集合类型17.以下合法的数组定义是A.int a()={‘A’,‘B’,‘C’}; B.int a[5]={0,1,2,3,4,5};C.char a={‘A’,’B’,’C’}; D.int a[]={0,1,2,3,4,5};18.如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为A.1 B.2 C.3 D.419.若有以下说明,则数值为4的表达式是int a[9]={1,2,3,4,5,6,7,8,9}char c=’a’,d,g;A.a[g-c] B.a[4] C.a[‘d’-‘c’] D.a[‘d’-c]20.能使一个已经打开的文件关闭的C语言函数是A.fopen() B.fover() C.fclose() D.fshut()21.以下说法中正确的是A.C语言程序总是从第一个的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分22.以下叙述中正确的是A.C语言比其他语言都高级B.C语言可以不用编译就能被计算机识别执行C.C语言出现的最晚,具有其他语言的一切优点D.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式23.在一个C程序中A.main函数必须出现在固定位置B.main函数可以在任何地方出现C.main函数必须出现在所有函数之后D.main函数必须出现在所有函数之前24.以下叙述中正确的是:A.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数调用不能嵌套C.函数的定义和调用都不能嵌套D.函数的定义和调用都可以嵌套25.设int x=1,sum=0;请在以下程序片段中选出能够实现从1累加到100功能的一项:A.while(x<=100) B.for(;x<100;x++)sum=sum+x ; sum=sum+x;C.do{sum+=x; x++} D.for(;x<=100;x++)while(x<=100); x=x+sum;26.有以下程序main(){int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for (i=0;i<3;i++){printf ("%d ",m[k][i]);}}执行后输出结果是A.2 5 8 B.4 5 6 C.3 6 9 D.7 8 927.若t为double类型,表达式t=1, t+5, t++的值是A.1.0 B.6.0 C.6 D.7.028.为了避免嵌套的if-else语句的二义性,C语言规定else总是与组成配对关系A.缩排位置相同的if B.在其之前未配对的ifC.在其之前未配对的最近的if D.同一行上的if29.若有定义:int x, *pb; 则正确的赋值表达式是:A.pb=&x B.pb=x C.*pb=&x D.*pb=*x30.以下不正确的叙述是A.预处理命令行都必须以“#”号开始B.在程序中凡是以“#”号开始的语句行都是预处理命令行C.C程序在执行过程中对预处理命令行进行处理D.#define ABCD是正确的宏定义31.若有以下程序fun(int a, int b, int c){ c=a*b; }main(){ int c;fun(2,3,c);printf(“%d\n”,c);}执行后输出的结果是A.0 B.出错 C.6 D.无定值32.有以下程序void fun(int *x){ printf(“%d\n”,++*x); }main(){ int a=25;fun(&a); }A.23 B.24 C.25 D.2633.下列表达式中,值等于1的是A.!b || b B.b>b C.a!=a D.3%434.以下程序的输出结果是(strcpy(a,b)函数作用是将b的内容复制到a上;strcat(a,b)函数作用是将b连接到a后面)#include<ctype.h>main(){ char str[50]=”xyz”, p1[20]=”abcd”, *p2;p2=”ABCD”;strcpy(str+2, strcat(p1+2, p2+1));printf(“%s\n”,str); }A.xyabcAB B.abcABzC.Ababcz D.xycdBCD35.以下不合法的八进制数是:A.0 B.028 C.077 D.0136.下列叙述中正确的是A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类型D.C语言中既没有逻辑类型也没有集合类型37.以下合法的数组定义是A.int a()={‘A’,‘B’,‘C’}; B.int a[5]={0,1,2,3,4,5};C.char a={‘A’,’B’,’C’}; D.int a[]={0,1,2,3,4,5};38、以下程序段的输出结果是()。
说明:请将单项选择题(1~50 空)的正确答案涂写考试答题卡,将填空(51~75 空)等文字题按【】中的序号写入下面文字答题卡,否则不得分。
、阅读程序题文字答题卡:(每空2 分,共24 分)三、完善程序填空题文字答题卡:(每空2分,共26 分)1题【63】2题【64】【65】【66】3题【67】【68】【69】4题【70】【71】【72】5题【73】【74】【75】、单项选择题(每空1 分,共50分)请将正确答案按【】中的序号写入答题卡,否则不得分1.在 C 语言中,一条语句以】字符作为结束符。
A) , B ) ; C) . 2.以 4 组标识符中,能作为变量名使用【】 。
A) age , struct , s1 B) 2A , b_3, main C) ELSE ,a[2],m123 D) _abc , INT ,abcd 3.判char 型变量 ch 是否为数字字符的正确表达式为 【】 。
A) 0<=ch<=9 B) '0'<=ch<='9' C) ( 0<=ch )&& D) ('0'<=ch )&& 大写字母 A 的 ASCII 码值是 65, 97, D) 无符号 4.已知小写字母 a 的 ASCII 码值是 输出大写字母 B 的是 【】 。
A ) putchar( 'A'+1 ); C) putchar( 98-32); 5.空字符串的长度是 【】 A ) 0 B) 1 6.整型变量 a 定义后赋初值的结果是 int a=2.8*6 ; A ) 12 B ) 若有以下说明语句,则该语句 char a='\077' ; A) 使 a 的值包含 C) 使 a 的值包含 下面的程序结果为: main() {int x=023 ; printf ( "%d\n" , --x); }A ) 17B ) 18 源程序执行后,屏幕上显示 【】 。
C语言程序设计(本试卷考试时间 120 分钟)一、单选题 ( 本大题 10 道小题,每小题 1.5 分,共15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。
1.下面标识符中,可以作为合法变量名的是( )。
答案:B 知识点:【24010201】知识考核要求:【2】能力考核要求:【1】难度系数:【A】A.m@qB.Mo_dayC.mn/5D.char2.设有如下语句:int s,num;s=1005;num=2;则表达式(float)s/num的值是()。
答案:C 知识点:【24030704】知识考核要求:【2】能力考核要求:【1】难度系数:【A】A.502.000000B.502C.502.500000D.503.0000003.设有如下定义语句:chara[10]="ABC";则printf("%s" , a+1);的输出结果为( )。
答案:D 知识点:【24040101】知识考核要求:【3】能力考核要求:【1】难度系数:【B】A.ABCB.CC.ABD.BC4.下列语句的输出结果是()。
inta=0123,b=0456;printf("%o\n",b-a);答案:C 知识点:【24040101】知识考核要求:【3】能力考核要求:【1】难度系数:【B】A.0456B.0123C.333D.5795.以下的for语句循环执行的次数是()。
for(x=0,y=0;(y!=20&&(x<20));x++);答案:C 知识点:【24040301】知识考核要求:【3】能力考核要求:【1】难度系数:【C】A.无限次B.不确定C.20次D.19次6.关于局部变量,下列说法正确的是()。
答案:C 知识点:【24060301】知识考核要求:【3】能力考核要求:【3】难度系数:【B】A.定义该变量的程序文件中的函数都可以访问B.定义处以下的任何语句都可以访问C.形式参数也是一种局部变量,可用于函数之间传递数据D.定义在复合语句中的局部变量,允许在该复合语句外访问7.有如下语句:chars[20]="welcome";char*ps=s;则不能引用字母c的表达式是()。
C语言程序设计试题C语言程序设计试题一、单项选择题(本题共25小题,每小题2分,共50分)1.以下正确的C语言自定义标识符是______。
A。
_1aB。
2a_C。
doD。
a.12正确答案:A2.在C语言中,错误的常数表示是_______。
A。
0LB。
-0x6aLC。
'6'D。
1.234E3.5正确答案:D3.设int a。
x=2;执行语句a=x>0?3*x:x=10;后,变量x的值是_______。
A。
1B。
2C。
6D。
10正确答案:B4.设有以下程序段:int x=2,y=2,z=0,a;a=++x||++y&&z++;printf("%d,%d,%d\n",x,y,z);执行后输出的结果是_________。
A。
2.2.0B。
3.3,1C。
3.2.0D。
3.2.1正确答案:C5.在C语言中,字符串"\\TOP\t\65\""的长度是_______。
A。
5B.7C。
8D。
12正确答案:D6.设float x,由键盘输入:12.45,能正确读入数据的输入语句是_________。
A。
scanf("%5f",&x)B。
scanf("%5d",&x);C。
scanf("%f",&x);D。
scanf("%s",&x);正确答案:C7.逗号表达式a=2*6,a*3,a+5的值是_________。
A。
12B。
17C.36D。
41正确答案:78.C语言程序中,整型常量的书写形式不包括_________。
A.二进制B.八进制C.十进制D.十六进制正确答案:D9.在C语言中,下列运算符中结合性属于自右向左的是_________。
A。
&&B。
-C.<<D。
->正确答案:C10.设int x。
则与计算︱x︱等价的表达式是_________。
A。
x>0?-x:xB。
x>0?x:-xC。
x<0?x:-xD。
x<0?-x:-x正确答案:B11.执行下面的程序段后,k的值是_______。
int k=1,n=325;do { k*=n%10;n/=10;}while(n);A。
3B。
30C。
523D。
325正确答案:B12.表达式的值为的是_________。
A。
5/5%5B。
5>2C。
4D。
0x7&&7正确答案:A13.程序段中,a/=b++ 表示 a = a / b。
b = b + 1.因为 a 初始值为 11,b 初始值为 2,所以循环执行一次后,a = 5,b = 3;再执行一次后,a = 1,b = 4.所以答案为 B。
1,4.14.C 语言中允许函数递归调用,所以 A 正确。
不允许在函数中再定义函数,所以 B 正确。
递归程序可以用非递归算法实现,所以 C 错误。
continue 语句只能用于循环语句中,不能改变程序结构,所以 D 错误。
所以答案为 C。
15.int a[2][3]={{1},{2,3}}。
表示 a 数组的第一行有一个元素为 1,第二行有两个元素为 2 和 3,因为 a[1][0] 表示 a 数组的第二行第一个元素,所以答案为 C。
2.16.int a[3][] 是错误的定义,因为必须指定第二维的大小,所以 A 错误。
float a[][4] 表示第一维大小未知,第二维大小为4,所以 B 正确。
double a[3][4] 表示 a 数组有 3 行 4 列,所以C 正确。
float a(3)(4) 是错误的定义,数组必须用 [],所以 D错误。
所以答案为 B 和 C。
17.chars[10]="abcd" 表示 s 数组有 5 个元素,因为字符串末尾有一个空字符,所以占用 6 个字节。
t[]="" 表示 t 数组有6 个元素,因为字符串末尾有一个空字符,所以占用 6 个字节。
所以答案为 B。
6 和 6.18.switch 语句中的表达式只能是整型或字符型,所以A、D 错误。
float 类型不是整型或字符型,所以 B 错误。
所以答案为 C。
19.形参的隐含存储类别是 auto,所以 A 正确。
static、extern、register 都是显式存储类别,不是隐含存储类别,所以B、C、D 错误。
所以答案为 A。
20.文件包含的命令是 #include,所以 C 正确。
#define 是宏定义命令,所以 A 正确。
#endif 和 #else 是条件编译命令,不是文件包含命令,所以 B 和 D 错误。
所以答案为 A 和 C。
21.外层循环执行 5 次,内层循环执行 4 次,所以循环体执行次数是 20.所以答案为 C.22.str2 数组只有 5 个元素,不能存储 "Hello" 这个长度为5 的字符串,所以 A 错误。
str1 是字符串常量,不能修改,所以 B 错误。
str2 = str1 是错误的赋值语句,数组不能整体赋值,所以C 错误。
正确的复制字符串的方法是strncpy(str2.str1.5)。
所以答案为无选项正确。
23.unsigned long 表示无符号长整型,d 赋值为 1000 没有问题,所以 A 正确。
float m1=m2=10.0.是错误的定义,因为m2 没有被定义,所以 B 错误。
所以答案为 A。
C语言程序的执行起点是main函数。
执行printf("%d\n",x&&y);后输出1.对应的C语言表达式为5*x/(x+y)。
函数f的参数个数是3.执行a+=a*=15;后,变量a的值是30.数组y中元素的个数是20.表达式x%y+x/y的值是3.执行printf("%d\n",strlen(s));后输出的值是6.变量i的值是5.表达式a[1][2]+a[2][3]的值是12.程序运行结果为3 3 3 3 3 3 3 3 3 3.其中,第一行输出10个3,第二行输出10个3,第三行输出10个3.includedefine N 10int main() {int a[N]。
i;printf("请输入%d个整数:\n"。
N);for (i = 0.i < N。
i++) {scanf("%d"。
&a[N-1-i])。
// 倒序输入printf("倒序输出:");for (i = 0.i < N。
i++) {printf("%d "。
a[i])。
// 正序输出printf("\n");return 0;void main()int i。
a[N];for(i=N-1.i>=0.i--)scanf("%d"。
&a[i]);for(i=0.i<N。
i++)printf("%d\t"。
a[i]);printf("\n");学生成绩的字每等级和分数范围如下:字母等级分数范围A 90~100B 80~89C 70~79D 60~69E 0~59其它字母输入错误输入字母等级之后,输出相应的分数范围。
includevoid main()char score;scanf("%c"。
&score);switch(score)case 'A': printf("A:90~100\n")。
break;case 'B': printf("B:80~89\n")。
break;case 'C': printf("C:70~79\n")。
break;case 'D': printf("D:60~69\n")。
break;case 'E': printf("E:0~59\n")。
break;default: printf("输入错误\n");五、程序修改题(本题共2小题,共10分)请在注释“ERROR”处修改程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序结构!43.用指针变量输出数值。
includevoid main()int a[ ]={1,2,3,4,5,6,7,8,9,10}。
*p;p = a。
// ERROR1printf("%d\n"。
*p + 9)。
// ERROR2,应该输出整型,改为%d44.利用函数求两个整数的最大公约数。
includevoid main()int gcd(int a。
int b);int a。
b。
abd;printf("input data a b:\n");scanf("%d %d"。
&a。
&b);abd = gcd(a。
b);printf("XXX divisor of %d and %d is %d.\n"。
a。
b。
abd);int gcd(int a。
int b)int temp;while(b。
0)temp = a % b;a = b;b = temp;return a;scanf("%d,%d",&a,&b); int abd=gcd(a,b);printf("abd=%d\n",abd);int gcd(int x,int y){int t;if(x<y) {t=x;x=y;y=t;while(y!=0){t=x%y;x=y;y=t;return x;改写后的文章如下:修正了scanf函数的参数传递错误,并在调用gcd函数时将返回值存储在变量abd中。
同时,修正了函数定义中的语法错误,将变量t的声明移动到函数开头,并在while循环中交换了x和y的值。
最终,将计算出的最大公约数返回给调用gcd函数的代码。