C.语言程序设计试题试题及答案
- 格式:doc
- 大小:33.58 KB
- 文档页数:60
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.以下正确的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语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。
2、以下能正确表示八进制整数的是()A 018B 0x18C 0o18D 18答案:C解释:在 C 语言中,八进制整数以 0 开头,数字取值范围 0 7,所以 0o18 能正确表示八进制整数。
3、若有定义:int a = 5, b = 2; 则表达式 a / b 的值是()A 25B 2C 20D 3答案:B解释:在 C 语言中,两个整数相除,结果为整数,舍去小数部分,所以 5 / 2 的结果是 2 。
4、以下程序段的输出结果是()int x = 10;printf("%d\n",++x);A 10B 11C 9D 12答案:B解释:++x 是先将 x 的值增加 1,然后再使用 x 的值,所以输出11 。
5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2的值是 3 。
6、以下函数声明中,正确的是()A void fun(int a, b);B void fun(int a, int b);C void fun(int a; int b);D void fun(int, int);答案:B解释:函数参数列表中,每个参数都需要明确指定其类型,所以 B 选项正确。
7、若有定义:char str ="hello";则 sizeof(str)的值是()A 5B 6C 20D 不确定答案:B解释:str 数组不仅包含字符'h','e','l','l','o',还包含一个字符串结束符'\0',所以 sizeof(str)的值是 6 。
《C语言程序设计》(卷)考核班级学生数印数考核方式闭卷考核时间120 分钟(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由()组成的。
A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是()。
A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b) printf ( “------------“) ;的正确说法是()。
A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出-----------4.若x、y、z均为int 型变量,则执行下列语句后的z值为()。
x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为()。
A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是()。
A.’A’B.’D’的ASCⅡ码C.65 D.37.语句char str[20];说明str是一个字符串,最多能表示()。
A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是()。
A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是()。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是()。
A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是()。
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语言程序设计考试题及答案一、选择题1. 下列选项中,哪一个是C语言的关键字?a) mainb) inputc) ifd) print答案:c) if2. C语言中用于定义整型变量的关键字是:a) intb) charc) floatd) double答案:a) int3. 在C语言中,以下字符常量的定义方式错误的是:a) 'A'b) '\n'c) 'AB'd) '\t'答案:c) 'AB'4. 下面哪个运算符优先级最低?a) +b) =c) *d) /答案:b) =5. 在C语言中,执行循环操作的语句是:a) forb) whilec) ifd) switch答案:b) while二、填空题1. 在C语言中,输出字符常量的函数是_______。
答案:printf2. 以下是定义数组的正确方式:int numbers[10];答案:int numbers[10];3. 在C语言中,用于判断条件是否成立的关键字是_______。
答案:if4. 以下是C语言中声明一个指针变量的方式:int *ptr;答案:int *ptr;5. 在C语言中,用于输入整型变量的函数是_______。
答案:scanf三、编程题请编写一个C语言程序,计算输入的两个整数相加的结果并输出。
```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;}```四、解答题1. 请解释C语言中的指针概念以及指针与变量的关系。
C 语言程序设计试卷,C++语言程序设计试题及答案一、单项选择题(每题1分,共20分)1. C 语言规定:在一个源程序中, main 函数的位置(C).A.必须在最开始 B.必须在系统调用的库函数的后面 C.可以任意 D.必须在最后 2. 下面四个选项中,均是合法浮点数的选项是 A. +1e+15e-9.403e2B. -.6012e-4-8e5C. 123e1.2e-.4+2e-1D. -e3.8e-45.e-03.若a=-14,b=3,则条件表达式 avb?a:b+1的值为(A)。
A. -14B.-13C.3D.44. 已知:intn,i=1,j=2; A.1,2B.1,3C.2,2D.2,35. 为了判断两个字符串s1和s2是否相等,应当使用(D)A.if(s1==s2)B.if(s 仁s2)C. if(strcm p( s1,s2))D. if(strcm p( s1,s2)==0)6. 以下正确的描述是(B) o(B)。
执行语句n=ivj?i++:j++; 则i 和j 的值是(c).A.函数的定义可以嵌套,但函数的调用不可以嵌套。
B.函数的定义不可以嵌套,但函数的调用可以嵌套。
C.函数的定义和函数的调用均不可以嵌套。
D.函数的定义和函数的调用均可以嵌套。
7. 在C 语言中,下面对函数不正确的描述是 A.当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。
B.允许函数递归调用。
C. 函数形参的作用范围只是局限于所定义的函数内。
D. 子函数必须位于主函数之前。
8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是A. 该变量只在该复合语句中有效B. 该变量在该函数中有效C. 该变量在本程序范围内均有效D. 该变量为非法变量9. 以下正确的函数形式是(D)。
A. doublefun(intx,inty){z=x+y;retum z;}B. fun(intx,y){int z; return z;}C. fun(x,y){intx,y;doublez;z=x+y;returnz;}D. doublefun(intx,inty){doublez;z=x+y;returnz;}10. 以下程序的输出结果是(B)。
三一.单项选择题1.设int x=1;y=1;表达式x++ || y--的值是_________A.0 B. 1 C. 2 D.-12.main{ int n;n=64;n+6;n2;printf“n=%d\n”;n;} 此程序的输出结果是______________.A.30 B. 24 C. 60 D. 483.若有如下定义;则__________是对数组元素的正确的引用..int a10 ; p ;p=a ; p=a ; p=a ; p=a ;A. &a10B. a11C. p+10D. p4.设整型变量n的值为2;执行语句“n+=n-=nn;”后;n的值是__________ A. 0 B. 4 C. - 4 D. 25.以下不能正确定义二维数组的语句是___________A . int a22={{1};{2}}; B. int a2={1;2;3;4};C. int a22={{1};2;3};D. int a2={{1;2};{3;4}};6.程序段的功能是将变量 u 、s中的最大值赋给变量t .. A. ifu>s t=u;t=s; B. t=u; ift t=s;C. ifu>s t=s;else t=u; D . t=s; ifu t=u;7.下列程序段的输出结果是 ..void main{ int k;for k=1;k<5;k++〉{ ifk%2=0printf"";elseprintf“” ; } }A. B . C. D. 以上都不对8.设变量定义为 int a3={1;4;7};p=&a2; 则p的值是 35 ..A. &a2B. 4C. 7D. 19.能正确表示a和b同时为正或同时为负的逻辑表达式是_________..A.a>=0||b>=0&&a<0 ||b<0 B.a>=0 && b>=0&&a<0 && b<0C.a+b>0 &&a+b<=0 D. ab>010.C语言中;合法的字符型常数是_________..A.‘A’ B.“A” C. 65 D. A11.设有数组定义:cha r array=”China”; 则数组所占的空间是________..A.4个字节 B.5个字节 C.6个字节 D.7个字节12.若变量c为char类型;能正确判断出c为小写字母的表达式是_______..A.’a’<=c<=’z’ B.c>=’a’ || c<=’z’C.‘a’<=c and ‘z’>=c D.c>=’a’ && c<=’z’13.设有定义:long x=-123456L; 则以下能够正确输出变量x值的语句是_______..A.printf“x=%d\n”;x B.printf“x=%ld\n”;xC.printf“x=%8dl\n”;x D.printf“x=%LD\n”;x;14.下列关于指针定义的描述;___________是错误的..A.指针是一种变量;该变量用来存放某个变量的地址值的..B.指针变量的类型与它所指向的变量类型一致..C.指针变量的命名规则与标识符相同..D.在定义指针时;标识符前的“”号表示后面的指针变量所指向的内容..15.已知:int x; int y10; 下列______是合法的..A.&x B.&x+3 C.&5 D .&y16.指出下面正确的输入语句__________..A. scanf“a=b=%d”;&a;&b ;B. scanf“%d;%d”;&a;&b ;C. scanf“%c”;c ;D. scanf“% f%d\n”;&f ;17.C语言中以追加方式打开一个文件应选择_______________参数..A.“r” B.“w”C.“rb” D.“a”18.Break语句的正确的用法是 ..A. 无论在任何情况下;都中断程序的执行;退出到系统下一层..B. 在多重循环中;只能退出最靠近的那一层循环语句..C. 跳出多重循环..D. 只能修改控制变量..19. 为表示关系x≥y≥z;应使用C语言表达式A.x>=y&&y>=z B. x>=y AND y>=zC.x>=y>=z D. x>=z&y>=z20.以下可以作为C语言合法整数的是________..A.1010B B. 0368 C.0Xffa D. x2a221.在函数中默认存储类型说明符的变量应该是________存储类型..A.内部静态 B. 外部 C.自动 D. 寄存器二.判断题1. C 语言源程序文件通过了编译、连接之后 ; 生成一个后缀为 .EXE 的文件.. 2.在 C 程序中 ; 函数既可以嵌套定义 ; 也可以嵌套调用..3.在 C 程序中; APH 和 aph 代表不同的变量..4.表达式 0195 是一个八进制整数..5.表达式 _ya是不合法的C语言标识符..6. C程序总是从main 函数的第一条语句开始执行的..7. A-=7等价于a=a-7..8.利用fclose函数关闭已打开的文件..9.数组名可以作为参数进行传递..10.执行printf"%x";12345;; 输出 12345 ..三、填空1.C语言的预处理语句以__________开头..2.表达式7+8>2 && 25 %5的结果是_______________________..3.下列程序段是从键盘输入的字符中统计数字字符的个数;用换行符结束循环.. int n=0; ch;ch=getchar ;while __________________{ if ________________ n++;c=getchar ; }4.C语言中putcharc 函数的功能是_________________________________.. 5.int p 的含义是___________________________________________..6.定义fp为文件型指针变量的定义方法为_______________________..7.数组 int a34;共定义了____________个数组元素..四、读出程序..1. 改正下列程序中不正确的语句..main{ int a=8 ; b=1;a=a+b;b=ab;printf"%d; %d";a;b; }2.写出下列程序的运行结果..funint a; int b{ ifa>b return a; Else return b; } main { int x=3;y=8;z=6;r; r=funfunx;y;2z;printf“%d\n”;r; }3. 改正下列程序中不正确的语句..main{ int n ;float s=1.0; forn=10;n>1;n- -s=s+1/n;printf“%6.1f\n”;s; }4. 写出下列程序的运行结果..main{ int n;Forn=3; n<=10; n++ { ifn%5= =0 break;Printf“%d”;n; } }5.写出下列程序的运行结果..include “stdio.h”main{ int a={1;2;3;-4;5}; int m;n;p; p=&a0; p=&a0;m=p+2;n=p+4;printf“%d %d %d ”;p;m;n;}五.编程序1.编程计算下列表达式:s=1+2+3+4+……+102.从键盘上输入a与n的值;计算sum=a+aa+aaa+aaaa+……共n项的和..例a=2; n=4; 则sum=2+22+222+2222..3.求3X3矩阵的主对角线元素之和..4.从键盘上输入10个数存入一维数组中;求这10数中的最大值与最小值并输出.. 5.从键盘上输入若干个字符存入文件write.txt中;遇到回车键输入结束..用“\n”表示答案一.单项选择题1 B 2B 3D 4C 5D 6C 7A 8C 9D 10A 11C 12D 13B 14D 15A 16B 17D 18B 19A 20C 21C二.判断题1√2Ⅹ 3√ 4Ⅹ 5Ⅹ 6√ 7√ 8√ 9√ 10Ⅹ三、填空1 号2 03 ch=’\n’ ch>=’0’ && ch<=’9’4 将变量c中的字符显示到屏幕上..5 指针变量p为整型6 FILE fp7 12四、读出程序..1 printf"%d; %d";&a;&b;2 123 s=s+1.0/n4. 3 45 1 3 5五.编程序1.include "stdio.h"main{ long s=0;t=1;int i;fori=1;i<=10;i++{ t=ti;s=s+t;}printf"%ld";s; }2include "stdio.h"main{ int a;n count=1;sn=0;tn=0; scanf"%d %d";&a;&n;whilecount<=n { tn=tn+a;sn=sn+tn;a=a10;++count; }printf"%d";sn; }3.include "stdio.h" main { int a33;i;j;s=0; fori=0;i<3;i++ forj=0;j<3;j++scanf"%d";&aij; fori=0;i<3;i++forj=0;j<3;j++ ifi==js=s+aij;printf"%d";s; }4.include "stdio.h"main{ int a10;max;min;fori=0;i<10;i++scanf"%d";&ai;max=a0;fori=1;i<10;i++ifai>maxmax=ai;min=a0;fori=1;i<10;i++ifai<minmin=ai;printf"%d %d";max;min; } 5.include "stdio.h"main{ int c;FILE fp;fp=open"write.txt";"w"; c=getchar;whilec='\n'{ fputcc;fp;c=getchar;}fclose; }。
C语言程序设计习题集东华理工大学2014.9基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。
A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。
A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。
A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。
A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。
A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。
A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。
int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。
A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。
A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。
y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。
A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。
printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。
计算机等级考试c语言程序设计试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A2. 下列选项中,哪个是合法的C语言变量名?()A. 2variableB. variable2C. variable_2D. variable-2答案:C3. 在C语言中,用于定义一个函数的关键字是()。
A. functionB. defC. defineD. int答案:D4. 下列关于C语言数组的描述中,错误的是()。
A. 数组名代表数组的起始地址B. 数组可以存储不同类型的数据C. 数组的下标从0开始D. 数组在内存中是连续存储的答案:B5. 下列关于C语言指针的描述中,正确的是()。
A. 指针可以存储任何类型的数据B. 指针变量的值是它所指向的变量的地址C. 指针变量不能被赋值D. 指针变量不能作为函数的参数答案:B6. 在C语言中,用于定义一个枚举类型的关键字是()。
A. enumB. structC. unionD. typedef答案:A7. 下列关于C语言函数的描述中,错误的是()。
A. 函数可以有返回值B. 函数可以没有返回值C. 函数必须有返回值D. 函数可以有参数答案:C8. 在C语言中,用于定义一个联合体的关键字是()。
A. structB. unionC. enumD. typedef答案:B9. 下列关于C语言中的循环控制语句的描述中,错误的是()。
A. for循环可以没有初始化表达式B. while循环至少执行一次循环体C. do-while循环至少执行一次循环体D. for循环可以没有循环控制表达式答案:B10. 在C语言中,用于定义一个宏的预处理命令是()。
A. #defineB. #includeC. #importD. #pragma答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用____关键字可以定义一个常量。
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 语言程序设计试卷 ,C++语言程序设计试题及答案一、单项选择题(每题1分,共20分)1. C语言规定:在一个源程序中,main函数的位置( C )。
A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后2. 下面四个选项中,均是合法浮点数的选项是( B )。
A. +1e+1 5e-9.4 03e2B. -.60 12e-4 -8e5C. 123e 1.2e-.4 +2e-1D. -e3 .8e-4 5.e-03. 若a=-14,b=3,则条件表达式 a<b? a:b+1的值为(A )。
A. -14B. -13C. 3D. 44. 已知:int n,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是( c ).A. 1,2B. 1,3C. 2,2D. 2,35. 为了判断两个字符串s1和s2是否相等,应当使用( D )A. if (s1==s2)B. if(s1=s2)C. if (strcmp(s1,s2))D. if (strcmp(s1,s2)==0)6. 以下正确的描述是( B )。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套。
B. 函数的定义不可以嵌套,但函数的调用可以嵌套。
C. 函数的定义和函数的调用均不可以嵌套。
D. 函数的定义和函数的调用均可以嵌套。
7. 在C语言中,下面对函数不正确的描述是( D)。
A. 当用数组名作形参时,形参数组值的改变可以使实参数组之值相应改变。
B. 允许函数递归调用。
C. 函数形参的作用围只是局限于所定义的函数。
D. 子函数必须位于主函数之前。
8. 如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是( A)。
A. 该变量只在该复合语句中有效B. 该变量在该函数中有效C. 该变量在本程序围均有效D. 该变量为非法变量9. 以下正确的函数形式是( D )。
A. double fun(int x,int y) { z=x+y;return z;}B. fun(int x,y) { int z; return z;}C. fun(x,y) { int x,y; double z; z=x+y; return z;}D. double fun( int x,int y) {double z; z=x+y; return z; }10. 以下程序的输出结果是( B )。
#include<stdio.h>#define F(y) 8.19-y#define PRINT(a) printf("%d",(int)(a))void main(void){int x=2;PRINT(x*F(3));}A. 10B. 13C. 11D. 报错11. 以下程序中编译和运行结果均正确的一个是( C )。
A. A. void main(void){union{int n;float x;} comm={1};printf("%d",comm.n);}B. B. void main(void){union{int n;float x;} comm={12.5};printf("%f",comm.x);}C. C. void main(void){union{float x;int n;} comm={12.5}printf("%f",comm.x);}D. D. void main(void){union{int n;float x;} comm=5;printf("%d", comm.n);}12. 设有定义:int a=1,*p=&a; float b=2.0; char c='A'; 以下不合法的运算是( A)。
A. p++;B. a--;C. b++;D. c--;13. 以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是( B )。
main(){int *p,*q,a,b;p=&a;printf("input a:");scanf("%d",*p);...}A. *p表示的是指针变量p的地址B. *p表示的是变量a 的值,而不是变量a的地址C. *p表示的是指针变量p的值D. *p只能用来说明p是一个指针变量14. 若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32);后num的值为( C )。
A. 4B. 16C. 32D. 5215. 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( C ),(注: _ 表示空格)int al,a2,char c1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A. 10A_20_BB. 10_A_20_BC. 10A20BD. 10A20_B16. 若有说明:int a[10]; 则对a数组元素的正确引用是(C )。
A. a[10]B. a[3.5]C. a[5-3]D. a[-1]17. 在C语言中, 一维数组的定义方式为类型说明符数组名;( A)A. [整型常量表达式]B. [表达式]C. [整型常量]D. [整型表达式]18. 以下能对一维数组a进行正确初始化的语句是( C )。
A. in a[10]=(0,0.0,0,0);B. int a[10]={};C. int a[]={0};D. int a[10]={10*1};19. 以下程序段( C )。
x=-1;do{x=x*x;}while(! x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误20. 以下关于do-while循环的不正确描述是( B )。
A. do-while的循环体至少执行一次B. do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C. 在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作D. do-while的循环体可以是复合语句二、是非判断题(每题1分,共15分)1. C语言规定,标识符中的字母一般区分大、小写。
T2. 控制台标准输入设备一般是指键盘。
T3. 使用while和do-while循环时,循环变量初始化的操作应在循环语句之前处理。
T4. 循环体中continue语句的作用是结束整个循环的执行。
F5. 关系表达式的值是0或1。
T6. 若有说明:int a[3][4]={0},则只有元素a[0][0]可得到初值0。
T7. 字符串作为一维数组存放在存中。
T8. 字符数组中的一个元素存放一个字符T。
9. 字符数组中的最后一个字符必须是'\0'。
F10. 形参为指针变量时,实参必须是数组名。
F11. 用数组名作函数参数时传递的是数组的值。
F12. 全局变量可以被任何一个函数中的任何一个表达式使用。
T13. 一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据。
14. 表达式i++与++i在任何场合功能完全相同。
15. 在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。
三、多项选择题(每题1分,共5分)1. 若要求在if 后一对圆跨括号中表示a不等于0的关系,则不能正确表示这一关系的表达式为( ABC ).A.a<>0B.!aC.a=0D.aE.a!=02. 选出所有合法的常量( CEGIJ )。
A.3e22.5B.-e-3C.-.1e-1D.'BASIC'E.'\045'F.0fdG.0xfdaLH.e8I.'\\'J."\""3. 以下关于函数原型说法错误的是: (ADFHI)(1)对变量的定义"和"声明"是一回事,对函数的"定义"和"声明"也是一回事。
(2)在声明函数原型时,允许只写出参数的类型,而不必写出参数的名称。
(3)如果在定义函数时不指定函数类型,系统会隐含指定函数类型为int型。
(4)调用一个函数时,函数名、实参个数、实参类型必须与函数原型一致。
(5)如果被调函数的定义出现在主调函数之前,可以不必加以声明。
(6)所有的函数之间可以互相调用。
(7)在C语言中,所有函数都是平行的,一个函数不能从属于另一个函数,即不能嵌套定义的。
(8)如果函数没有返回值,在定义时可以省略函数类型。
(9)在C语言中,任何函数的定义都不允许为空。
(10)C语言规定,实参变量对形参变量的数据传递是"值传递"。
4. 请从下面关于指针的叙述中, 选出5个正确的叙述。
(ABDEH)(1)指针即地址。
(2)指针须先赋值后使用。
(3)当指针p指向数组a的首址后,由于p和a都能引用数组元素,所以这里p和a是等价的。
(4)int *p表示定义了一个指向int类型数据的指针变量p。
(5)数组的指针是指数组的起始地址。
(6)若有定义int a[4],*p=a,则p++后p指向数组a所占存的第二个字节。
(7)使用指针变量作函数参数采取的是"值传递"的方式。
(8)相同类型的指针可以进行减法运算。
(9)指针变量和许多变量一样可以进行四则运算。
(10)指针p指向数组元素a[2],若要其指向a[4],执行p=p*2即可。
5. 以下关于数组的叙述中,5个最确切的说法是: (BEGHI )(1)在声明一个数组变量时必须指定大小。
(2)必须用常量表达式来说明一个数组变量的大小。
(3)在对数组进行初始化时大括号中的数据个数必须和数组的大小相同。
(4)有变量定义int a[3]={0,1,2},b[3];,可以用b=a,使数组b的每个元素和a的每个元素相等。
(5)在C语言中,可以将字符串作为字符数组来处理。
(6)定义了字符数组char c[11];为了给它赋值,可以用c="china";。
(7)如果有char s[15]={"I am a\0 student"};,则strlen(s)的值为6。
(8)C语言中,二维数组中元素排列的顺序是:按行存放。
(9)在C语言中,不能对局部的数组变量进行初始化。
(10)在声明时对数组进行进行初始化必须指定数组大小。
四、程序运行结果题(每题4分,共20分)1. (4分)下面程序的运行结果是( ① ) 。