c语言程序设计试题2
C语言程序设计试题集及其答案 (2)
第一章基础知识一.填空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.以下关于运算符优先级的描述中,正确的是 B 。
A)!(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算B)&&(逻辑与)>算术运算>关系运算>赋值运算C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)2.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是 B 。
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)3.以下程序的运行结果是 B 。
main( ){int c,x,y;x=1;y=1;c=0;c=x++||y++;printf(“\n%d%d%d\n”,x,y,c);}A)110 B)211 C)011 D)0014.判断字符型变量ch为大写字母的表达式是 C 。
A)‟A‟<=ch<=‟Z‟B)(ch>=‟A‟)&(ch<=‟Z‟)C)(ch>=‟A‟)&&(ch<=‟Z‟)D)(ch>=‟A‟)AND(ch<=‟Z‟)5.以下if语句书写正确的是 B 。
A)if(x=0;)B)if(x>0)printf(”%f”,x); {x=x+1; printf(”%f”,x);}else printf(”%f”,-x); else printf(”%f”,-x);C)if(x>0);D)if(x>0){x=x+1; printf(”%f”,x);} {x=x+1; printf(”%f”,x) }else printf(”%f”,-x); else printf(”%f”,-x);6.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是A。
《C语言程序设计(第2版)》试题库 期末试卷二
期末试卷二一、单项选择题(每题1分,共45分)1.下列变量名中,哪个是合法的()A.C&D B.string$C.char D._2132.C语言程序的基本单位是()A.程序行B.语句C.函数D.字符3.表达式a+b%3的值是()(设a=13.6,b=10)A.14.6 B.15C.15.9 D.16.64.保存一个C语言源程序的快捷键是()A.F1 B.F2 C.F3 D.F45.字符串”tc20\nlib\101\\\’”含有多少个字符( )A.10 B.11 C.12 D.136.Putchar()函数可以向终端输出一个()A. 整型变量或表达式值B. 实型变量值C. 字符串D. 字符或字符型变量值7.以下所列的C语言常量中,错误的是()A.0xFF B.2*5 C.2.5 D.04568.下列不合法的C语言赋值表达式是()A.a+=b-c B.a+b=cC.a=b=c=1 D.a*=++b+c9.下列程序运行后的输出结果是()main(){ int y=3,x=3;printf(“%d\n”,++x+y++);}A.5 B.8 C.7 D.610.若已正确定义x和y为double类型,则表达式x=1,y=x+3/2的值是()A.1 B.2 C.2.0 D.2.511.在C语言中运算对象必须是整型的运算符是()A.% B./ C.= D.*12.若有以下定义:char a; int b; float c;则表达式a*b-c值的类型为()A.int B.char C.double D.float13.下列正确的C语言赋值语句的是()A.x=3,y=5 B.a=b=1 C.i++; D.y=int(x)14.有如下程序段:int a1,a2;char c1,c2;scanf("%d%c%d%c",& a1,&c1,&a2,&c2);若要求a1、a2、c1、c2的值分别为10、20、A、B,正确的数据输入是()(<CR>表示回车) A.10A 20B<CR> B.10 A 20 B<CR>C.10 A20B<CR> D.10A20 B<CR>15.有如下程序,输入数据:12345m678<CR>后,x的值是()#include <stdio.h>main( ){ int x; float y;scanf("%3d%f", &x,&y);}A.12345 B.123 C.45 D.34516.有如下程序,对应正确的数据输入是()main( ){ float a, b;scanf("%f%f", &a,&b);printf("a=%f,b=%f\n",a,b);}A.2.04<CR> B.2.04,5.67<CR>5.67<CR>C.a=2.04,b=5.67<CR> D.2.045.67<CR>17.有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,& c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式是()A.132<CR> B.1,3,2<CR>C.a=1,b=3,c=2<CR> D.a=1 b=3 c=2<CR>18.已知字母A的ASCII码是65,以下程序的执行结果是()main( ){char c1='A', c2='Y';printf("%d,%d\n", c1, c2);}A.A,Y B.65,65 C.65,90 D.65,8919.以下程序的执行结果是()main( ){ int a=2,b=5;printf("a=%d,b=%d\n", a, b);}A.a=%2,b=%5 B.a=2,b=5C.a=%%d,b=%%d D.a=%d,b=%d20.最适合解决选择结构“若x>0, 则y=1;否则y=0;”的语句是()A.switch B.嵌套的if-else C.if-else D.if21.设整型变量x,y和z的值依次为3,2和1,则下列程序段的输出结果是()if(x>y)x=y;if(x>z)x=z;printf(″%d,%d,%d\n″,x,y,z);A.1,1,1 B.1,2,1 C.1,2,3 D.3,2,122.执行下列程序段后,变量x的值是()int a=8,b=7,c=6,x=1;if(a>6) if(b>7) if(c>8) x=2;else x=3;A.0 B.1 C.2 D.323.运行下列程序的输出结果是()main(){ int a1=1,a2=1,a3=1,a4=1;if (a1>0) a3++;if (a1>a2) a3--;else if (a1= =a2) a3++;else a3--;printf(″%d,%d,%d,%d\n″,a4,a3,a2,a1);}A.1,1,1,1 B.1,2,3,4C.4,3,2,1 D.1,3,1,124.执行下列语句后,整型变量x的值是()switch (x=1) { case 0:x=10;break;case 1:switch (x=2) {case1:x=20;break;case2:x=30;}}A.30 B.20 C.10 D.125.以下说法中正确的是()A.continue和break只能用在循环体中B.continue只能用在循环体中C.break只能用在循环体中D.continue只能用在循环体外26.执行下列程序段的输出是()m=8;while (m>=5) m--,--m,n=m--- m;pritnf (″%d,%d″,m,n);A.2, 0 B.5,-1 C.5,0 D.5,127.设整型变量x的值为1,执行下列循环语句后,变量x 的值是()do x++; while (x++<2);A.2 B.3 C.4 D.528.执行下列语句后,变量k的值是()for (k=0;k<=5;k++) do k++;while (k<5);A.5 B.6 C.7 D.829.下列程序段中,不能使变量m的值等于10的程序段是()A.m=0; B.do m=0;while (m++<9); while (m++<10);C.for (m=8;m<10;m++); D.m=0;L:m++;if (m<10)goto L;30.下列语句中不正确的是()A.static int a[5]={1,2,3,4,5};B.static int a[5]={1,2,3};C.static int a[]={0,0,0,0,0};D.static int a[5]={0*5};31.说明:int a[10];则对a数组元素的正确引用是()A.a[10] B.a[3.5] C.a(5) D.a[10-5] 32.下面程序的运行结果是()main(){ int a[6],i;for(i=1;i<6;i++){a[i]=9*(i-2+4*(i>3))%5;printf(“%2d”,a[i]);}}A.-4 0 4 0 4 B.-4 0 4 0 3C.-4 0 4 4 3 D.-4 0 4 4 033.以下程序的输出结果是()main(){ int n[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;printf(“%d\n”,n[1]);}A.1 B.3 C.2 D.434.下面程序的输出结果是()main(){char s[]=”cat and mouse”;int j=0;while(s[j]!=’\0’) ++j;printf(“%d\n”,j);}A.11 B.0 C.12 D.1335.下面程序的运行结果是()#include <stdio.h>main(){char a[10]=”student”;char b[10]=”boy”;int n;n=strlen(a)+strlen(b);printf(“%d”,n);}A.7 B.10 C.12 D.2036.以下程序的输出结果是()void fun(int a,int b,int c){ a=456;b=567;c=678;}main(){ int x=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}A.30,20,10 B.10,20,30C.456,567,678 D.678,567,45637.以下说法中正确的是()A.C语言程序总是从第一个定义的函数开始执行。
《C语言程序设计》模拟试卷2
《C 语言程序设计》模拟试卷2考试班级:一、判断题(2’×10=20’)1、C 语言源程序文件的扩展名均为.c 。
( )2、所谓变量,就是在程序运行过程中其值不可以改变的量。
( )3、一个C 语言程序总是从main 函数开始执行。
( )4、C 语言中所有字符串都是以‘\0’结束的。
( )5、在C 语言中do-while 和while 语句均是先判断表达式,再执行循环体语句。
() 6、算术运算符中‘/’的优先级高于‘%’。
( )7、int a[5];该语句表明数组a 中的第五个元素为a[5]。
( ) 8、函数getchar()的作用是:输出一个字符。
( )9、C 语言程序区分大小写。
( )10、C 语言中标识符第一个字符可以由字母,数字和下划线三种字符组成。
()二、单项选择题(2’×15=30’)1、以下说法正确的是( )。
A 、C 语言程序总是从第一个的函数开始执行B 、在C 语言程序中,要调用函数必须在main()函数中定义C 、C 语言程序总是从main()函数开始执行D 、C 语言程序中的main()函数必须放在程序的开始部分2、C 语言中基本数据类型包括( )。
A 、整型、实型、逻辑型B 、整型、实型、字符型C 、整型、字符型、逻辑型D 、字符型、实型、逻辑型3、下列可用于C 语言用户标识符的一组是( )。
A 、1AB 、P_0C 、-abcD 、int4、C 语言的三种基本结构是( )。
A 、顺序结构、逻辑结构、选择结构B 、顺序结构、选择结构、循环结构 系部:班级:学号:姓名:C、逻辑结构、层次结构、网状结构D、层次结构、顺序结构、循环结构5、起换行作用的转义字符是()。
A、’\t’B、’\b’C、’\n’D、’\r’6、设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为()。
A、intB、floatC、double D)不确定7、关于数组元素类型的说法,下列那一项是正确的:()。
全国计算机等级考试《二级C语言程序设计》模拟试卷二
全国计算机等级考试《二级C语言程序设计》模拟试卷二[单选题]1.在下列模式中,能够给出数据库物理存储结构与物理存取方法的是((江南博哥))。
A.外模式B.内模式C.概念模式D.逻辑模式参考答案:B参考解析:数据库管理系统的三级模式包括:①外模式,也称子模式、用户模式,是指数据库用户所看到的数据结构,是用户看到的数据视图;②模式,也称逻辑模式,是数据库中对全体数据的逻辑结构和特性的描述,是所有用户所见到的数据视图的总和;③内模式,也称存储模式、物理模式,是指数据在数据库系统内的存储介质上的表示,是对数据的物理结构和存取方式的描述。
答案选择B选项。
[单选题]4.下面不属于需求分析阶段任务的是()。
A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划参考答案:D参考解析:需求分析阶段的工作主要包括4个方面:①需求获取,其目的是确定对目标系统的各方面需求;②需求分析,对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③编写文档,编写需求规格说明书,编写初步用户使用手册;④确认测试计划,修改完善软件开发计划,需求评审。
制定软件集成测试计划属于概要设计阶段的任务。
答案选择D选项。
[单选题]5.结构化程序的三种基本控制结构是()。
A.顺序、选择和重复(循环)B.过程、子程序和分程序C.顺序、选择和调用D.调用、返回和转移参考答案:A参考解析:结构化程序设计中三种基本控制结构为顺序、选择和重复(循环)。
答案选择A选项。
[单选题]6.构成计算机软件的是()。
A.源代码B.程序和数据C.程序和文档D.程序、数据及相关文档参考答案:D参考解析:计算机软件的定义为:与计算机系统的操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。
答案选择D选项。
[单选题]7.在黑盒测试方法中,设计测试用例的主要根据是()。
A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图参考答案:B参考解析:黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只根据程序的需求和功能规格说明,检查程序的功能是否符合它的功能规格说明。
C语言程序设计试题2
C语言程序设计试题2一、选择题(20分,每小题2分)1.C语言源程序的基本单位是()。
A.过程 B.函数 C.子程序 D.标识符2. 定义int *swap()指的是()A.指一个返回整型值的函数swapB.指一个返回指向整型值指针的函数swapC.一个指向函数swap()的指针,函数返回一个整型值D.以上说法均错3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。
A. 7 B. 8 C. 9 D. 24. C语言中函数返回值的类型是由()决定的。
A.return语句中的表达式类型 B.调用该函数的主函数类型C.定义函数时所指定的函数类型 D.传递给函数的实参类型5. 设有如下程序段,下面描述中正确的是()。
int k=10; while(k=0) k=k-1;A.循环执行一次 B.循环是无限循环C.循环体语句一次也不执行 D.循环体语句执行一次6.以下选项中可用作C程序合法实数的是A.1e0 B.3.0e0.2 C.E9 D.9.12E7.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是A.a=(b=4)=3;B.a=b=c+1;C.a=(b=4)+c;D.a=1+(b=c=4);8.设有说明“char s1[10],*s2=s1;”,下列语句中正确的语句是______。
A.*s2=”computer”; B.s2=”computer”;C.s1[]=”computer”; D.s1[10]=”computer”;9.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);10.具有相同类型的指针类型变量p与数组a,不能进行的操作是()。
C语言程序设计模拟试卷 (2)
模拟试卷一一、选择题(每题1分,共15分) 在每小题列出的四个选项中只有一个是符合题目要求的,请在正确答案前点选,错选或未选均不得分。
1. 以下选项中不合法的用户标识是:正确答案A. _123B. printfC. A$D. Dim2. 在C 语言中,char 型数据在内存中的存储形式是:正确答案A. 补码B. 反码C. 原码D. ASCII 码正确答案:D3. 设x,y,z 为int 型变量,且x=3,y=4,z=5 ,则下面表达式中值为0 的是:正确答案A. 'x'&&'y'B. !((x<y)&&!z||1)C. x||y+z&&y-zD. x<=y正确答案:B4. 若有定义:int a=2,b=4,c; 执行语句c=a/b+2.6 ;后,c 的值为:正确答案A. 2.6B. 3.1C. 3D. 2正确答案:D5. 设a 为整型变量,不能确定表达数学关系10<a<15 的为C 语言表达式是:正确答案A. 10<a<15B. a==11|| a==12|| a==13|| a==14C. a>10&&a<15D. !(a<=10)&&!(a>=15)正确答案:C6. 若i 、j 已定义为int 型,则以下程序段中语句printf( “ %d ” ,i*j); 的执行次数是:for (i=3;i>0;i-- )for (j=0;j<4;j++ )printf( “ %d ” ,i*j);正确答案A. 12B. 15C. 16D. 20正确答案:A7. 若有输入语句“ scanf( "%d%d%d",&x,&y,&z); ”,则不能使x值为5,y 值为6,z值为7的输入是:正确答案A. 5 ,6 ,7< 回车>B. 5 6 7< 回车>C. 5 6 < 回车> 7< 回车>D. 5< 回车> ,6< 回车> ,7< 回车>正确答案:A8.执行以下程序段后,x ,y 和z 的值分别是:int x=10,y=20,z=30;if(x>y) z=x; x=y; y=z;正确答案A. 10,20,30B. 20,30,30C. 20,30,10D. 20,30,20正确答案:B9. 以下程序段x = -1;do{ x=x*x;} while(!x); 正确的说法是:正确答案A. 死循环B. 循环一次C. 循环两次D. 有语法错正确答案:B10. 以下正确的函数声明形式是:正确答案A. double fun(int x ,int y)B. double fun(int x ;int y)C. double fun(int x ,int y) ;D. double fun(int x ,y) ;正确答案:C11.若有定义char ch[8] ,则以下表达式中不能代表数组元素ch[1] 的地址是:正确答案A. &ch[0]+1B. &ch[1]C. &ch[0]++D. ch+1正确答案:C12. 若有初始化语句“ int a[5]={1,2,3,4,5}; ”,值为4 的表达式是:正确答案A. a[4]B. a[a[2]+1]C. a[a[2]]D. a[3]+1正确答案:C13. 若已有以下函数定义:float fun(float a, int b){int c;c=(int)a%b;return c;}则主调函数中语句“ printf("%f",fun(fun(fun(34,7),4),3)); ”的输出结果是:正确答案A. 2.000000B. 因参数类型与形参类型不一致,函数调用产生错误C. 2D. 因变量c 的类型与fun 函数的返回值类型不符,故输出值为随机值正确答案:A14. 已知:int a[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+2 ;则值为3 的表达式是:正确答案A. (*p)++B. *p++C. *++pD. ++*p正确答案:B15. 以下可作为函数fopen 中第一个参数的正确格式是:正确答案A. c:\user\file.txtB. "c:\user\file.txt"C. "c:\\user\\file.txt"D. c:user\file.txt正确答案:C二、填空题(共10题)1. 字符串存储时,末尾被系统自动加上字符。
C语言程序设计理论试题库2
《C语言程序设计》理论试题库选择题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、8 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语言程序设计题库二
C 语言程序设计题库二1、写出下面函数的运行结果。
#include<stdio.h>void fx701(int k,int n,float a);int main(){int k=1,n=5;float a=3.2,b=8.5;printf(" 调用前:k=%d n=%d a=%.2f b=%.2f\n",k,n,a,b);fx701(k,n,a);printf(" 调用后:k=%d n=%d a=%.2f b=%.2f\n",k,n,a,b);return 0;}void fx701(int k,int n,float a){int q=100;float b,x=6.2;k+=q; n*=q; a-=x; b=3.5*a;printf(" 函数中:k=%d n=%d a=%.2f b=%.2f\n",k,n,a,b);}解:调用前:k=1 n=5 a=3.20 b=8.50函数中:k=101 n=500 a=-3.00 b=-10.50调用后:k=1 n=5 a=3.20 b=8.50 2、编写一个函数,实现从键盘输入一个整数,如果该整数为素数,则返回否则返回0。
1,解:#include<stdlib.h>#include<stdio.h>int Is_prime(int i){int j=0;for(j=2;j<i;j++){if(0==(i%j)){return 0;}}return 1;}int main(){int i;printf("Please input a number:"); scanf("%d",&i);if(1==Is_prime(i)){printf("%d is a prime.\n",i);}elseprintf("%d is not a prime.\n",i); system("pause");return 0;程序运行结果如下:Please in put a nu mber:1 /13 is a prime.Please in put a nu mbe8 /8 is not a prime.3、设计两个函数,分别求矩形的周长和面积,并在主函数中调用这两个函数解:#include<stdio.h>float area(float a,float b){float s;s=a*b;return(s);}float zc(float a,float b){float p;p=2*(a+b);return(p);}int main(){float a,b,s,p;printf(" 请输入长方形的边长a,b:");scanf("%f%f",&a,&b);s=area(a,b);p=zc(a,b);printf("长方形的周长为p=%f,长方形的面积为s=%f",p,s);m~n 要求程序运行情况如下:请输入长方形的边长a,b:3 4/长方形的周长为p=14.000000长方形的面积为s=12.0000004、 编写一个函数求一个整数n 的阶乘,在主函数中计算并输出10!的值。
《C语言程序设计》试题2及答案
二一、填空题1、C语言中普通整型变量的类型说明符为,在内存中占字节,有符号普通整型的数据范围是。
2、C语言中基本的数据类型有:、、。
3、设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是。
4、共用体和结构体的定义格式类似,不同点是。
5、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是。
6、有语句:char A[ ]={”I am a student”};该字符串的长度是,A[3]= 。
7、符号”a”和’a’的区别。
8、下列程序的输出结果是。
int ast(int x,int y,int * cp,int * dp){ *cp=x+y; *dp=x-y; }main(){ int a=4,b=3,c,d;ast(a,b,&c,&d);printf("%d,%d/n",c,d); }二、选择题1、以下选项中属于C语言的数据类型是(B )。
A. 复合型B. 双精度型C. 逻辑型D. 集合型2、以下说法中正确的是( C )。
A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分3、选出下列标识符中不是合法的标识符的是( D )。
A. hot_doB. cat1C. _priD. 2ab4、下列描述中不正确的是( C )。
A.字符型数组中可能存放字符串。
B.可以对字符型数组进行整体输入、输出。
C.可以对整型数组进行整体输入、输出。
D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。
5、若已定义:int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为( C )。
C语言程序设计(参考试卷+答案) (2)
题号 一 二 三 四 五 六 总分 得分考试形式:■闭卷 □开卷 ■笔试 □机试 答卷要求:试卷答案需填写至答题卡内一、单项选择题(每小题 2 分,共 30 分)1 2 3 4 5 6 7 8 9 10 D C A B D B B B D A 11 12 13 14 15 BBBCD1、关于C 语言的叙述中,不正确的是(D )。
A) C 程序可由一个或多个函数组成 B) C 程序必须包含一个main()函数 C) C 程序的基本组成单位是函数D) 注释说明只能位于一条语句的后面2、C 语言源程序文件经过C 编译程序编译连接之后生成一个后缀为( C )的文件。
A) .cB) .objC) a#10 D) Pad C) .exe D) .basC) a#10 D) Pad3、若有定义:float x=3.5; int z=8; 则表达式x+z%3/4的值是( A ) A) 3.5B) 3.75C) 3D) 44、下列标识符中,不合法的用户标识符为( B )。
A) _intB) a#10C) abcD) Pad5、下面运算符优先级最低的是(D )。
A) !B) >=C) %D) +=6、若变量已正确定义,执行语句scanf (“%d,%d ”,&a, &b);若要求a 、b 的值分别为10和20,正确的数据输6入是( B ) A) 10 20B) 10,20C) a=10, b=20D) 10;207、对于整型变量x ,下述计语句与赋值句:x=x%2==0?1:0;不等价的是( B ) A) if (x%2!=0)x=0; else x=1; B) if (x%2)x=1; else x=0; C) if (x%2==0)x=1; else x=0; D) if (x%2==1)x=0; else x=1;8、以下程序运行后,循环体运行的次数为( B )int i=10,x; for( ;i<10;i++) x=x+i; A) 10B) 0C) 1D) 无限9、若有定义int a[2][3];则对数组元素的非法引用是( D ) A) a[0][1/2]B) a[1][1]C) a[4-4][0]D) a[0][3]10、在C 程序中,若对函数类型未加说明,则函数的隐含类型为(A )。
《c语言程序设计》试卷2-答案
下面是经典古文名句赏析!!不需要的朋友,可以下载后编辑删除!!谢谢经典古文名篇(一);1.陋室铭刘禹锡(唐)字梦得《刘梦得文集》;山不在高,有仙则名;2.马说韩愈(唐)字退之《昌黎先生集》;世有伯乐,然后有千里马;马之千里者,一食(shí)或尽粟一石(dàn);策之不以其道,食(sì)之不能尽其材(才),鸣之;3.师说韩愈(唐);古之学者必有师;嗟乎!师道之不传也久矣!欲人之无惑也难矣!古之圣;圣人无常师;李氏子蟠,年十七经典古文名篇(一)1. 陋室铭刘禹锡(唐)字梦得《刘梦得文集》山不在高,有仙则名。
水不在深,有龙则灵。
斯是陋室,惟吾德馨。
苔痕上阶绿,草色入帘青。
谈笑有鸿儒,往来无白丁。
可以调素琴,阅金经。
无丝竹之乱耳,无案牍之劳形。
南阳诸葛庐,西蜀子云亭。
孔子云:何陋之有?2.马说韩愈(唐)字退之《昌黎先生集》世有伯乐,然后有千里马。
千里马常有,而伯乐不常有。
故虽有名马,只辱于奴隶人之手,骈死于槽枥之间,不以千里称也。
马之千里者,一食(shí)或尽粟一石(dàn)。
食(sì)马者不知千里而食(sì)也。
是马也,虽有千里之能,食(shí)不饱,力不足,才美不外见(现),且欲与常马等不可得,安求其能千里也?策之不以其道,食(sì)之不能尽其材(才),鸣之而不能通其意,执策而临之,曰:“天下无马!”呜呼!其真无马邪(ye)?其真不知马也。
3.师说韩愈(唐)古之学者必有师。
师者,所以传道受(授)业解惑也。
人非生而知之者,孰能无惑?惑而不从师,其为惑也,终不解矣。
生乎吾前,其闻道也固先乎吾,吾从而师之;生乎吾后,其闻道也亦先乎吾,吾从而师之。
吾师道也,夫庸知其年之先后生于吾乎?是故无贵无贱,无长无少,道之所存,师之所存也。
嗟乎!师道之不传也久矣!欲人之无惑也难矣!古之圣人,其出人也远矣,犹且从师而问焉;今之众人,其下圣人也亦远矣,而耻学于师。
C语言程序设计练习二
《C语言程序设计》练习二二、多项选择题在每小题列出的五个备选项中有二至五个是符合题目要求的,请将其代码填写在题后的括号内。
1的有(ADE )1.设有int a=3,b=-5;下面表达式值不等于...A.a<0&&b<0B.a=fabs(b)-(a+1)C.a<b||b<0D.(a,2,-5)= =(b,2,a)E.! (a>0&&b<0)2.设有说明:int u=1,v=3;下面表达式的值为3的是(ACD )A.v|uB.u&vC.u ^ v|1D.v|u>>1E.v&~u3. 设有说明:int x=1, y=3; 下面表达式的值为2的有(ABE )A. y&~xB. x^yC. x|yD. y|x>>1E. x<<1|y>>24.设有说明:int u=1, v=3, w=7;下面表达式的值为3的有(AC)A.w>>1&v|uB.u&v&wC.u|v&wD.w&v<<1E.v^w|u5.若有int x;float;y下面结果为整型数的表达式有(ACD )A.(int)(x+y) B.(int)x+yC.´a´+x D.x+(int)yE.x*y6.设有说明:int u=1,v=5;则下列表达式的值为1的有(ABE )A.u&v B.v>>2C.u^u D.u¦vE.(u<<3)/57.设有int a=3,b=-5;下列表达式的值等于1的有(ABCE )A. a&&b<0B. fabs(b)-a-1>0C. a>b&&b<0D. (a,2,-5)==(b,2,a)E. a+b<08.下面合法的C语言转义字符有(ABCE )A.\123B.\xabC.\\D.\88E.\n9.设有说明:int u=0,v=l,z=2;1则下列表达式中结果为-l的有(AB )A.v=~uB.u=u|~(v&z)C.v=(u|z)<<1D.u=~(u|z)E.v&=(~u)10.设有说明:int u=1,v=3,w=7;下列表达式的值为7的有()A.u&v|w B.u|v|w C.u^v|w D.w&v|u E.u^w|v 11.下面基本结构和特性中符合结构化程序设计的要求的有(ABCE)A.选择结构B.循环结构C.顺序结构D.各结构之间只有一个入口,至多两个出口E.各结构之间只有一个入口,一个出口12.下列语句中正确的有(ACD )A.if(x>y);B.if(x=y)&&(x!=0)x+=y;C.if(x! =y)scanf(“%d,&x);else scanf(“%d”,&y);D.if(x<y){x+ +;y+ +;}E.if(x<y)x+ +;y+ +;else x――;y――;13.下列循环将会产生死循环的有(ACDE )A.while(1); B.do{ }while(0);C.do{ }while(1); D.for(k=1;k>―10;k+ +); E.for(k=1;k=10;k+ +,k――);14.以下if语句中没有语法错误的有(AC )A.if(x>0)printf(″%f″,x);else printf(″%f″,x);B.if(x>0){x=x+y;printf(″%f″,x)}else printf(″%f″,x)C.if(x>0){x=x+y;printf(″%f″,x);}else printf(″%f″,x);D.if(x>0)x=x+y;printf(″%f″,x);else printf(″%f″,x)E.if x>yx++;2elsex--;15.设有程序如下:main(){ int i,j,a[]={1,3,5,7,9,11,13,15};i=5;switch(i){ default;printf(″%d\n″,a[i]);case 1:printf(″%d\n″,a[3]);case 2:printf(″%d\n″,a[++i]);break;case 3:printf(″%d\n″,a[--i]);}}上述程序的输出结果不包括(AC)A.5 B.7 C.9 D.11 E.1316.下列关于break、goto、continue语句的说法中正确的是(ACE )A. break语句能够用于循环语句中B. break语句不能用于switch语句中C. goto语句可以用于直接从多层循环中退出D. continue语句可用于跳出循环体E. continue语句不能用于switch语句中17.下面能执行循环结构的语句有(BCD6 )A.if语句B.while语句C.do—while语句D.for语句E.switch语句18.若有定义int a[5];,则对a数组元素或地址的引用错误..的有()A.&a[5]B.a[2]C.a++D.*aE.a[0]19. 若定义char c[11]; 可将字符串″I am a boy″赋给数组c,下面正确的选项有()A. c=″I am a boy″; B. getchar(c);C. gets(c);D. scanf(″%s″,c);3E. for(i=0;i<10;i++) scanf(″%c″,&c[i];c[10])=’\0’;20. 若有如下定义和语句,则能正确表示数组a首元素地址的表达式有()int a[10], *p;p=a;A. a[0]B. aC. p+1D. pE. *p21.下面各选项中,能正确进行字符串操作的有()A. char s[ ]={′a′, ′b′, ′c′, ′d′, ′e′, ′\0′};B. char s[10];s=″abcde″;C.char s[10];strcpy(s, ″abcde″)D.char s[10];getchar(s);E.char s[10];gets(s);22.若有以下定义和语句,则能正确表示数组a首元素地址的表达式有()double a[5],*p1p1=a;A.aB.p1+1C.*p1D.&a[1]E.p123.设有定义:int a[2][3];下面关于数组元素引用正确的有()A.a[0][3] B.a[0][0]C.a[2][1] D.a[1][2]E.a[2][3]24.设有二维数组int a[4][3];下列表示数组元素a[0][2]地址的有()A.a[2] B.*aC.*a+2 D.a[0]+2E.&a[0][2]25.设有定义及赋值:()int a[10]={0,1,2,3,4,5,6,7,8,9},*p;p=a;则引用a中值为5的元素的正确形式是A.a[5] B.a[4] C.*(a+5) D.p[5] E.*(p+5)426.若有定义及赋值:int *p,a[4],i;p=a,则可以表示数组元素值的形式是()A.*(a+i)B.a+iC.&a[i]D.a[i]E.*(p+i)27.若有定义:int y[4][4],( *p)[4];及赋值p=y;则下列语句中可以输出数组元数y[2][0]的值的语句是()A. printf (″%d\n″,&y[2][0]);B. printf (″%d\n″, y[2][0]);C. printf (″%d\n″,p[2][0]);D. printf (″%d\n″, y[2]);E. printf (″%d\n″, *(*(y+2));28.设变量Vo5的地址已赋给指针变量inV,则下列关系表达式的值为1的有()A.Vo5==&inVB.Vo5==* inVC.inV==* Vo5D.inV==&Vo5E.Vo5==inV29.以下关于函数和变量的说法中正确的有(ABC )A.不同函数中可以使用相同名字的变量B.形式参数是局部变量C.一个函数内部定义的变量只能在本函数范围内有效D.在一个函数内部的复合语句中定义的变量可在本函数范围内有效E.如果全局变量与函数内定义的局部变量同名,则在函数内局部变量无效30.设有关于结构体类型的定义:()struct food{char name[20];int kind;}myfood,*p;下面各个选项中语句都正确的是A.p=&myfood;B.p=&myfood;p->kind=5; strcpy(p->name,〃rice〃);C.p=&myfood;D.strcpy(myfood. name, 〃pie〃);p.kind=7; p=&myfood;E.p=&myfood,p->kind=6;strcpy(, 〃apple pie〃);31.设有关于结构体类型的定义:()struct car{char*name;float price;struct car *next;5}*p,*head=NULL;下面各选项中正确的有A.p=(struct car*)MALLOC(sizeof (struct car);B.p=(struct car*)malloc (sizeof (struct car);C.p.next=head;D.p->next=head;E.p=(struct car *)malloc (sizeof(car);32.设有关于结构体类型的定义:()struct data{int num;struct data *next;} *p,* head=NULL;下列语句中正确的有A.p=(struct data *)malloc(sizeof(struct data));B.p=(struct data )malloc(sizeof(struct data));C.p=(struct data *)malloc(sizeof(data));D.p->next=head;E.p.next=head;33.设有关于结构体类型的定义:struct worker{int id;char *name;float salary;} wl={102035,″Lihua″,2560.50},*p;下列选项中语句语法正确的有()A. p=wl;B. p=&wl;C. p->id=wl->idD. p->id=wl.id;E. p.salary=wl.salary;34. 在C语言中,关于符号FILE下面说法正确的有()A. FILE是C的关键字B. FILE表示一种关于文件参数的结构体类型C. FILE表示一种关于文件参数的结构体变量D. FILE*可以用来说明文件指针6E. 文件指针指向的变量的数据类型是FILE35.在C语言中,下面关于文件说法正确的有(ACE )A.按数据的组织形式,可分为文本文件和二进制文件B.文件只能是ASCII码文件C.文件能用fopen( )函数打开D.文件只能是二进制文件E.对打开的文件可以进行读或写操作7。
C语言程序设计试卷2(含答案)
setw(int *b,int m,int n,int dat) { int k;
for(k=0;k<m*n;k++) { *b = = dat;b++; } }
假设变量a的说明为 int a,求调用此函数的正确写法是( )。
A. setw(*a,5,8,1); B. setw(&a,5,8,1); C. setw((int *)a,5,8,1); D. setw(a,5,8,1); 7、请读程序: #include<stdio.h> main( )
上面程序的输出结果( )。
A. 101001 B. 001001 C. 111001 D. 101101 8、请读程序
#include <math.h> #include <stdio.h> main( )
{ float x,y,z;
#include <stdio.h> main()
{ int *p1,*p2,*p; int a=5, b=8; p1=&a;p2=&b;
if(a<b) {p=p1;p1=p2;p2=p;} printf(&uot;%d,%d,&uot;,*p1,*p2); printf(&uot;%d,%d&uot;,a,b);}
若运行时从键盘上输入3.6 2.4<CR>, 则输出结果是( )。 A. 1.500000 B. 1.600000 C. 2.000000 D. 2.400000 9、若有说明
C语言测试题2
A、char name[4]="ACCP";B、char name[4]={'A','C','C','P'};
C、char name[]="ACCP";D、char name={'A','C','C','P'};
17、有如下一组数据:25,15,5,10,51为了把该组织数据按升序排序,如果采用冒泡排序法,需要比较()次(选择一项)
2、定义函数fun,接收用户输入的10个数字,筛选出其中的奇数和偶数,分别用数组存放,将奇数数组按从小到大排序后输出,将偶数数组按从大到小排序后输出
如:输入45 89 52 13 66 102 99 11 73 100
分别放入数组a[]:45 89 13 99 11 73
b[]:52 66 102 100
{
switch(n%3)
{
case 2:
putchar('2');
case 1:
putchar('i');
break;
case 0:
putchar('H');
}
n++;
}
}
A)Hi2Hi2HiB)Hi2C)Hi2iHi2iD)Hi2iHi2iHi
13、已知下列C语言代码的输出结果是2008年是闰年,已知闰年的判定规则是:能被4整除但不能被100整除的年份,或能被400整除的年份。请问在空白处可以填写的代码是()(选择一项)
18、A、10 B、15 C、9 D、11
《c程序设计》考试试题2
C语言测试题一、选择题1、下列不属于C语言关键字的是_______A.default B.register C.enum D.external2、以下运算符中优先级最低的为_______A, && B, & C, || D, =3、已知:float x=1, y; 则:y=++x*++x的结果为A,y=9 B, y=6 C, y=1 D, 表达式是错误的4、有关宏代换叙述中错误的是_______A,宏代换不占用运行时间B,宏名无类型C,宏代换只是字符替换D,宏名必须用大写字母表示5、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为_______A, a<>0 B, !a C,a=0 D, a6、已知:int x,a,b; 下列选项中错误的if 语句是_______A,if (a=b) x++ B, if (a=<b) x++ C, if (a-b) x++ D, if (x) x++7 执行语句“for(i=0; i++<3;);”后,变量i的值为_______A,2 B,3 C,4 D, 58 在while(x)中的x与下面条件表达式等价的是_______A,x= =0 B, x= =1 C, x!=1 D, x!=09、定义int i=1; 执行语句“while (i++<5); ”后,i的值为A,3 B,4 C,5 D,610、C语言中进行乘方运算,例如求a的3次方,可以使用_______A, a^3 B,a**3 C, pow(a,3) D,power(a,3)11、C语言中的返回值是由_______决定的。
A,return语句中的表达式类型B,调用该函数的主调函数类型C,调用函数时临时决定D,定义函数时所指定的函数类型12、在一个源文件中定义的外部变量的作用域是_______A,本文件的全部范围B,本程序的全部范围C,本函数的全部范围D,从定义该变量的位置开始至本文件结束13、在一个C圆程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是_______A, extern B,register C, auto D, static14、调用strlen(“abcd\0ef\0g”)的返回值是_______A,4 B,5 C,8 D,915、若用数组名作为函数调用时的实参,则实际上传递给形参的是_______A,数组首地址B,数组的第一个元素值C,数组中全部元素的值D,数组元素的个数16、已知:char str1[20]=”abcde”, str[20]=”xyz”; 则执行语句:printf(“%d”, strlen(strcpy(str1,str2)));输出结果是_______A,9 B,3 C,5 D,817、以下不能对二维数组a进行正确初始化的语句是_______A,int a[2][3]={0} B, int a[ ][3]={{1,2},{0}}C, int a[2][3]={{1,2},{3,4},{5,6}} D, int a[ ][3]={1,2,3,4,5,6}18、在C语言中,二维数组在内存中的存放顺序是_______A,按行存放B,按列存放C,由用户自己定义D,由编译器决定19、选择正确的说明语句A,int a[‘a’] B,int a[3,4] C,int a[ ][ ] D,int a(*a)[10]20、已知:char s[10],*p=s, 则在下列语句中,错误的语句是_______A,p=s+5; B,s=p+s C, s[2]=p[4] D, *p=s[0]21、C语言主函数main最多允许有_______个参数A,1 B,2 C,0 D,322、已知:int x[ ]={1,3,5,7,9,11},*ptr=x; 则能正确引用数组元素的语句是_______A,x B, *(ptr--) C,x[6] D, *(--ptr)23、下列结论中正确的有_______A,所有的递归程序均可以采用非递归算法实现B,只有部分递归程序可以用非递归算法实现C,所有的递归程序均不可以采用非递归算法实现D,以上说法都不对24、在C语言的函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了funA,则_______A,称为函数的直接递归B,称为函数的间接递归C,称为函数的递归定义D,C语言中不允许这样的递归形式二、阅读程序1、编译执行下列程序,结果是# include <stdio.h>main( ){int i=6, y=4,z=2; pintf (“%d\n”, i/y%z);}A,错误信息,不能执行B,0 C,1 D,22、下面程序的输出是# define SUB(X,Y) (X)*Ymain( ){ int a=3,b=4;printf(“%d\n”,SUB(a++,b++) );}A,12 B,15 C,16 D,203、阅读程序,选择运行结果# include <stdio.h>main( ){ char c=’A’;if (‘0’<=c<=’9’)printf (“YES”);elseprintf (“%d,%d\n”,a,b);}A,YES B, NO C, YESNO D, 语句错误4、阅读程序,选择运行结果# include <stdio.h>main( ){ int a, b,c;a=1; b=2; c=3;if (a>b)if(a>c)printf(“%d”,a);else printf (“%d”,a);printf (“%d\n”,c);}A, 1 2 B, 2 3 C,3 D, 以上都不对5、若运行下列程序时,输入以下指定数据,请选择正确的执行结果# include <stdio.h>main( ){ int s;while( (s=getchar( ) )!=’\n’){ switch (s-‘2’){ case 0:case 1: putchar (s+4);case 2: putchar(s+4); break;case 3: putchar (s+3);default: putchar(s+2); break;}}printf(“\n”);}自第一列开始输入:2473〈CR〉A,6688766 B,66778777 C,668966 D,668977 6、下面程序的运行结果是# include <stdio.h>main( ){ int i=1;while (i<=15)if (++i%3!=2) continue;else printf(“%d”,I);printf(“\n”);}7、下面程序的运行结果是# include <stdio.h>void main( ){ int j,i,k=0;for (j=11; j<=30; j++){ if (k%10= =0) printf(“\n”);for (i=2; i<j; i++)if (!(j%i) ) break;if (i>=j-1){printf (“%d\t”, j);k++;}}}8、请选择下列程序的运行结果# include <stdio.h>fun(int *p){ int a=10;p=&a;++a;}main( ){ int a=5;fun(&a);printf (“%d\n”, a);}A,5 B, 6 C, 10 D, 119、请选择下列程序的运行结果# include<stdio.h>try ( ){ static int x=3;x++;return (x);}main( ){ int i, x;for (i=0; i<=2; i++)x=try( );printf (“%d\n”, x);}A, 3 B, 4 C, 5 D, 610、请选择下列程序的运行结果# include<stdio.h>int d=1;fun(int p){int d=5; d+=a++;printf (“%d “,d)}main( ){ int a=3;fun(a);d+=a++;printf (“%d”,d);}A, 8 4 B,9 6 C, 9 4 D, 8 5 11、写出程序执行结果# include <stdio.h>main( ){ int x=10;{ int x=20;printf (“%d, “, x);}printf (“%d\n”, x);}12、写出程序执行结果# include <stdio.h>main( ){ int x=1;void f1( ), f2( );f1( ); f2(x);printf (“x=%d\n”, x);}void f1(void){ int x=3;printf (“x=%d\t”, x);}{ printf (“x=%d\t”,++x);}13、请选择下列程序的运行结果# include <stdio.h>main( ){ int i, k, a[10], p[3];k=5;for (i=0; i<10; i++)a[i]=i;for (i=0; i<3; i++)p[i]=a[i*(i+1)];for (i=0; i<3; i++)k+=p[i]*2;printf (“%d\n”, k);}A, 20 B,21 C, 22 D, 2314、写出程序执行结果# include “stdio.h”main( ){char str[30];gets(str);printf (“%s\n”, str);}运行程序,输入:Fortran Language15、写出程序执行结果# include <stdio.h># include <string.h>main ( ){ char str[100]=”How do you do”;strcopy (str+strlen(str)/2, ”es she”);printf (“%s\n”,str);}16、下面程序的功能是把字符串s中所有的‘c’删除。
c语言二级程序设计试题及答案
c语言二级程序设计试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言是面向对象的程序设计语言C. C语言具有丰富的数据类型D. C语言具有结构化的特点答案:B2. 在C语言中,用于定义一个整型数组的语句是:A. int a[10];B. int a[];C. int a(10);D. int a=10;答案:A3. 下列哪个选项是正确的C语言函数声明?A. int function(int a, int b);B. int function(int, int);C. int function(int a);D. int function();答案:B4. 在C语言中,用于输入一个字符的函数是:A. scanf()B. printf()C. getchar()D. puts()答案:C5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. do-while答案:B6. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A7. 下列哪个选项是正确的C语言指针声明?A. int *p;B. int *p[];C. int (*p)[];D. int *p[10];答案:A8. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. typedefC. structD. union答案:A9. 下列哪个选项是正确的C语言文件操作函数?A. fopen()B. fclose()C. fprintf()D. All of the above答案:D10. 在C语言中,用于定义一个联合体的关键字是:A. unionB. structC. typedefD. enum答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个浮点型变量的关键字是________。
C语言程序设计试题2
C语言程序设计试题2一、单项选择题(每题2分,共40分)1.以下叙述中正确的是。
A。
C语言系统以函数为单位编译源程序B.main函数必须放在程序开始C。
用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数2.以下选项中,不能用作c语言标识符的是A.printB.FOR C。
&a D。
_003.对于以下程序片段,描述正确的是.int x = -1;do{x = x * x;}while(!x);A。
是死循环B。
循环执行两次C.循环执行一次D。
有语法错误4.已知有声明”int a=3,b=4,c=5;”,以下表达式中值为0的是。
A。
a&&b B.a<=b C.a||b&&c D。
!(!c||1)5.已知有声明"long x,y;"且x中整数的十进制表示有n位数字(4<n<10),若要求去掉整数x 十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到y中,则以下表达式中能正确实现这一功能的是。
A.y=x/(10*(n—1))B.y=x%(10*(n-1))C.y=x%(long)pow(10,n—1)D.y=x%(10^(n-1))6。
已知有声明”int x,y;",若要求编写一段程序实现"当x大于等于0时y取值1,否则Y 取值-1”,则以下程序段中错误的是。
A.if(x〉=0)y=1;else y=-1;B。
y=x>=0?1:—1;C.switch()D.switch(x-abs(x)){case x〉=0:y=1;break; {case 0:y=1;break;default:y=—1; default:y=—1;}}7。
已知有声明"int m[]={5,4,3,2,1},i=0;”,下列对m数组元素的引用中,错误是.A。
m[++i] B.m[5]C。
m[2*2] D。
C语言程序设计复习题二及参考答案
C语言程序设计复习题二一.单项选择题1.按照C语言的规定,能作为用户标识符的是()。
A)int B)5a C)abc_123 D)unsigned2.编译操作的功能是把源程序转换成()。
A)源程序B)目标程序C)可执行程序D)汇编程序3.定义下面语句,编译会出错的是()。
A)char a='x'; B)char a='\t'; C)char a='cc'; D)char a='\101';4.以下选项中正确的定义语句是()。
A)double x; y; B)double x=y=7; C)double x=7, y=7; D)double, x, y;5.若有定义int x, y;并已正确给变量赋值,则以下选项中与表达式(x-y) ? (x++): (y++)中的条件表达式(x-y)等价的是()。
A)(x-y>0) B)(x-y<0) C)(x-y<0 || x-y>0) D)(x-y==0)6.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()。
A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定7.设有定义:int x=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A)x++ B)x+=1 C)++x D)x+18.若有定义语句:int x=10;,则表达式x-=x+x的值为()。
A)-20 B)-10 C)0 D)109.有以下程序void main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是()。
A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,110.以下叙述中正确的是()。
A)C语言是一种非结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计不提倡模块化的设计方法11.有以下程序#include <stdio.h>void main(){ char e1,e2;e1=’A’+’8’-‘4’;e2=’A’+’8’-‘5’;printf(“%c,%d\n”,e1,e2);}已知字母A的ASCII码为65,程序运行后的输出结果是()A)E,68 B)D,69 C)E,D D)输出无定值12.有以下程序void main(){ int a=0,b=0;a=10; /*给a赋值b=20; 给b赋值*/printf("a+b=%d\n",a+b);}程序运行后输出结果是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言试卷-2一、选择题(评分标准20 分,每小题2分)1. 执行语句“a=b=3; printf(“%d,%d\n”, a<<2, b>>2);”后的输出结果为________。
(A)12,0 (B)12,3 (C)false,true (D)true,false2. 若a是32位int整型变量,判断其最低2个二进位均为1的表达式为________。
(A)a&3==3 (B)a&3==11 (C)a&11==3 (D)a&11==113. 以“只读”方式打开文本文件c:\xy.text,下列语句中哪一个是正确的________。
(A)fp=fopen(“c:\\xy.txt”, “a”); (B)fp=fopen(“c:\\xy.txt”, “r”);(C)fp=fopen(“c:\\xy.txt”, “wb”); (D)fp=fopen(“c:\xy.txt”, “r”);4. 为表示“a和b都不等于0”,应使用的C语言表达式是_______。
(A)(a!=0) ‖(b!=0) (B)a‖b (C)!(a=0)&&(b!=0) (D)a&&b5. 若x是单精度实型变量,k是基本整型变量,以下正确的输入语句是________。
(A)scanf(“%f%d”, &x,&k); (B)scanf(“%f%d”, x,k);(C)scanf(“%d%f”, &x,&k) (D)scanf(“%d%f”, x,k);6. 下列运算中优先级最低的是________。
(A)* (B)<< (C)= (D)->7. 已知字符…c‟的ASC II为99,语句printf(“%d,%c”, …c‟, …c‟+1);输出为________。
(A)99,c (B)99, 100 (C)99,d (D)语句不合法8. 不正确的赋值或赋初值的方式是________。
(A)char str[6]={…s‟,‟t‟,‟r‟, ‟i‟,‟n‟,‟g‟}; (B)char str[10]=”string”(C)char *str=”string”; (D)char str[10]; str=”string”;"9. C 语言程序中可以对程序进行注释,注释部分必须用符号_________括起来。
(A)…{… 和‟}‟ (B)…[…和‟]‟ (C)“/*”和”*/” (D)“*/”和”/*”10. ________是合法的用户自定义标识符。
(A)b-b (B)float (C)<fr> (D)_isw二、判断题(评分标准20 分,每小题2分)1. 表达式(3.6%2)符合C语言语法。
2. 在C程序中,用整数0表示逻辑值“假”。
3. 08是正确的整型常量。
4. 设变量定义为char s[]=“hello”,则数组s中有6个元素。
5. 若x是单精度实型变量,表达式(x=10/4)的值是2.5。
6. 若变量已正确定义,表达式x=y=1符合C语言语法。
7. 表达式!(x>0‖y>0)等价于!(x>0&&!(y>0)。
8. 表达式(0x19<<1)&0x7的值是3。
9. 在C源程序中将语句“if(x==5) y++;”误写成“if(x=5) y++;”,将导致编译错误。
10. C的double类型数据可以精确表示任何实数。
三、填空题(评分标准10 分,每小题2分)1. 存储…A‟要占用________个字节(用数字表示)。
2. 设a=3.b=2.c=1.则a>b>c的值为________。
(用‘0’或‘1’表示)3. 在C语言中,头文件的后缀名是________。
4. 表达式!!5的值是________。
5. 若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为________。
参考答案:四、程序改错题(评分标准20 分,每小题5分)1. 该程序功能:输入m、n(要求输入数均大于0),输出它们的最小公倍数。
#include <stdio.h>void main(){ int m,n,k;while(scanf("%d%d",&m,&n),m<0&&n<0);for(k=m;k%n==0;) /*$1*/k=k+m;printf("%d\n",k);}说明:该程序中“/*$1*/”行中的语句k%n==0; 有错误,请改正(注意:不得加行、减行、加句、减句)。
运行样例:8 6 结果:24运行样例:6 8 结果:24参考答案:k%n!=02. 该程序功能:输入x、eps,计算多项式1-x+x*x/2!-x*x*x/3!+...的和直到末项的绝对值小于eps为止。
/*一重循环*/#include <stdio.h>#include <math.h>void main(){ float x,eps,s=1,t=1,i=1;scanf("%f%f",&x,&eps);do{t=-t*x/i; /*$1*/s+=t;}while(fabs(t)>=eps);printf("%f\n",s);}说明:该程序中“/*$1*/”行中的语句t=-t*x/i; 有错误,请改正(注意:不得加行、减行、加句、减句)。
运行样例:1 0.0001 结果:0.367882参考答案:t=-t*x/i++;3. 该程序功能:输入1个字符串,输出其中所出现过的大写英文字母。
/*循环,分支,库函数*/#include <stdio.h>void main(){ char x[80],y[26]; int i,j,ny=0;gets(x);for(i=0;x[i]!='\0';i++)if(x[i]>='A'&&x[i]<='Z') {for(j=0;j<ny;j++)if(y[i]==x[j])break; /*$1*/if(j==ny) {y[ny]=x[i];ny++;}}for(i=0;i<ny;i++)printf("%c ",y[i]);printf("\n");}说明:该程序中“/*$1*/”行中的语句break; 有错误,请改正(注意:不得加行、减行、加句、减句)。
运行样例:FONTNAME and FILENAME 结果:F O N T N A M E F I L E N A M E参考答案:continue4. 该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。
#include <stdio.h>#include <string.h>#include <stdlib.h>void main(){int n;unsigned int i;char *str;scanf("%d\n",&n);str=(char*)malloc(n);gets(str);for(i=0; i<strlen(str); i++)if(str[i]<='a'&& str[i]>='z') /*$1*/str[i]=str[i]-32 ;puts(str);}说明:该程序中“/*$1*/”行中的语句if(str[i]<='a'&& str[i]>='z') 有错误,请改正(注意:不得加行、减行、加句、减句)。
运行样例:5 Apple 结果:APPLE参考答案:if(str[i]>='a'&& str[i]<='z')五、程序填空(评分标准10 分,每小题5分)1. 以下程序对test.txt进行读操作,并将读出的文本输出到屏幕上。
设test.txt文件中存有“hello,welcome to the world of C!”字样。
#include <stdio.h>#include <stdlib.h>main(){ FILE *fp;char ch;/*$*/if (fp == NULL){ printf("can not open test\n");exit(0);}ch = fgetc(fp);while(ch != EOF){ putchar(ch);ch = fgetc(fp);}fclose(fp);}说明:该程序中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句)。
运行结果1:hello,welcome to the world of C!参考答案:fp = fopen("test.txt", "r");2. 输入6个整数12 33 43 6 3 22 ,输出为:3 6 12 22 33 43 。
/* 形参和实参的传递*/#include <stdio.h>void sort(int *a,int n ){ int i, k, m, t;for(i=0; i<n-1;i++) {k=i;for(m=i+1; m<n;m++)if (/*$1*/)k=m;t=a[k]; a[k]=a[i]; a[i]=t ;}}void main( ){ int k, a[6];for(k=0; k<6; k++)scanf("%d", &a[k]);sort(a, 6) ;for(k=0; k<6;k++)printf("%d ", a[k]);}说明:该程序中“/*$1*/”行是根据程序功能需要填充部分,请完成程序填充(注意:不得加行、减行、加句、减句)。
运行样例1:12 33 43 6 3 22 结果:3 6 12 22 33 43参考答案:a[k]>a[m]六、程序设计(评分标准20 分,每小题10分)1. 设计程序:输入一个正整数n,求1+1/2!+1/3!+...+1/n!的值,要求定义并调出函数fact(n)计算与n 的阶乘有关的计算式,函数返回值的类型是单精度浮点型,保留小数2位。