2010级C语言复习题(精简)

合集下载

2010年全国计算机等级考试C语言试题及答案

2010年全国计算机等级考试C语言试题及答案

2010年全国计算机等级考试C语言试题及答案一、选择题(1)下列叙述中正确的是AA)对长度为n的有序链表进行查找,最坏清况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)(2)算法的时问复杂度是指DA)算法的执行时间B)算法所处理的数据量C)算法程序中的语司或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于系统软件的是B A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是 C A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。

详细设计属于B A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负责数据模式定义的语言是 A A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是D A)文件B)数据库C)字段D)记录(9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的C A)需求分析阶段B)逻辑设计一阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R和T如下:则由关系K得到关系T的操作是A)选择B)投影C)交D)并(11)以下叙述正确的是B A)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(12)以下关于C语言的叙述中正确的是B A)C语言中的注释不可以夹在变量名或关键字的中间B)C语言中的变量可以在使用之前的任何位置进行定义C)在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D)C语言的数值常量中夹带空格不影响常量值的正确表示(13)以下C语言用户标识符中,不合法的是 D A)_1B)AaBcC)a_bD)a—b(14)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是 C A)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(15)有以下程序 C #include<stdio.h>main(){ char a,b,c,d;scanf(“%c%c”,&a,&b);c=getchar(); d=getchar();printf(“%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)12<CR>34<CR>则输出结果是C A)1234B)12C)123D)1234(16)以i关于C语言数据类型使用的叙述中错误的是 D A)若要准确无误差的表示自然数,应使用整数类型B)若要保存带有多位小数的数据,应使用双精度类型C)若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D)若只处理“真”和“假”两种逻辑值,应使用逻辑类型(17)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是 A A)1B)0C)2D)不知道a的值,不能确定(18)以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是B A)switch(a){case:a=b;break;default:a++;}B)switch(a==1){case 0:a=b;break;case 1:a++;}C)switch(a){default:a++;break;case 1:a=b;}D)switch(a==1){case 1:a=b;break;case 0:a++;}(19)有如下嵌套的if语句if (a<b)if(a<c)k=a;else k=c;elseif(b<c)k=b;else k=c;以下选项中与上述if语句等价的语句是C A)k=(a<b)?a:b;k=(b<c)?b:c;B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);C)k=(a<b)?((a<e)?a:e):((b<e)?b:c);D)k=(a<b)?a:b;k=(a<c)?a:c;20)有以下程序 A #include<s七dio.h>main(){in i,j,m=1;for(i=1;i<3;i++){for(j=3;j>O;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A)m=6B)m=2C)m=4D)m=5(21)有以下程序#include(stdio.h>main(){int a=l;b=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(22)有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A)12B)11C)10D)9(23)下列语句组中,正确的是A)char *s;s="Olympic";B)char s[7];s="Olympic";C)char *s;s={"Olympic"};D)char s[7];s={"Olympic"};(24)以下关于return语句的叙述中正确的是A)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(25)下列选项中,能正确定义数组的语句是A)int num[0..2008];B)int num[];C)int N=2008;int num[N];D)#define N 2008int num[N];(26)有以下程序#include <stdio.h>void fun(char *c,int d){*c=*c+1;d=d+1;printf("%c,%c,",*c,d);main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A)b,B,b,AB)b,B,B,AC)a,B,B,aD)a,B,a,B(27)若有定义int(*Pt)[3];,则下列说法正确的是A)定义了基类型为int的三个指针变量B)定义了基类型为int的具有三个元素的指针数组ptC)定义了一个名为*pt、具有三个元素的整型数组D)定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组(28)设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A)(*s)[3]B)*(s+3)C)*s[3]D)*s+3(29)有以下程序#include(stdio.h)main(){int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]]);printf("%d\n", s);}程序运行后的输出结果是A)6B)10C)11D)15(30)有以下程序#include <stdio.h>main(){int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=ij<=1;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A)1B)3C)4D)9(31)若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A)5 5B)10 5C)10 7D)5 8(32)有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=O;i<N/2;i++){printf("%d",a[i]);}printf("\n");}程序运行后的输出结果是A)1313B)2234D)1234(33)有以下程序#include <studio.h>int f(int t[],int n);main{ int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0)return t[n-1]+f(t,n-1);else return 0;}程序运行后的输出结果是A)4B)1OC)14D)6(34)有以下程序#include <stdio.h>int fun(){ static int x=1;x*2; return x;}main(){int i,s=1,for(i=1;i<=2;i++)s=fun();printf("%d\n",s);}程序运行后的输出结果是A)OB)1C)4D)8(35)有以下程序#include <stdio.h>#define SUB(a)(a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A)0C)-20D)10(36)设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A)data2=data1;B)data2=(2,6);C)data2.real=data1.real;D)data2.real=data1.unreal;(37)有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;} 程序运行后的输出结果是A)1001,zhangDa,1098.0B)1002,changRong,1202.0C)1001,ehangRong,1098.OD)1002,ZhangDa,1202.0(38)有以下定义和语句struct workers{int num;char name[20];char c;struct{int day; int month; int year;}s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A)*pw.year=198O;B)w.year=1980;C)pw->year=1980;D)w.s.year=1980;(39)有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A)OB)1C)2D)3(40)有以下程序#include <stdio.h>main(){FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fpfopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A)abcB)28cC)abc28D)因类型不一致而出错二、填空题(1)一个队列的初始状态为空。

2010成教C语言复习题

2010成教C语言复习题
(A)按行存放(B)按列存放(C)由用户自己定义(D)由编译器决定
25.二维字符数组[10][10]能够存储()个字符串,每个字符串的长度至多为()。
(A)10,10(B)10,9(C)9,10(D)9,9
26.下列关于指针运算的描述错误的是()。
(A)指针变量是用于存储变量地址的变量
(B)指针变量是用于存储变量值的变量
()37.一个C++程序通常由有而且只能有一个的主函数、若干个子函数和库函数构成。
()38.在C++的函数调用中,主函数可以调用子函数,子函数也可以调用其它的子函数,但子函数不能自己调用自己。
()39函数的递归调用可分为直接递归调用和间接递归调用。
()40同一源文件中,若外部变量名与局部变量名相同,则在执行该函数过程中,外部变量起作用。
8.以下描述中正确的说法是()。
(A)break语句与continue语句完全一样,可以相互代替
(B)用break语句可以提前终止整个循环
(C)用continue语句可以提前终止整个循环
(D)用break语句与continue语句都不能提前终止执行循环
9.以下for循环的执行次数是()。
for(x=0,y=0;(y=123)&&(x<2);x++)
()2ቤተ መጻሕፍቲ ባይዱ.字符串"hello,world"在内存中存放时,占用12个字节的空间。
()26.定义一个一维字符数组有50个元素,用该一维字符数组表示一个字符串数据最
多允许有50个字符。
()27.定义一个数组后该数组的最小下标取值是0。
()28.同一数组的所有数组元素在内存中是连续存放的。

201012真题C语言(含答案)

201012真题C语言(含答案)

0124、以下叙述正确的是()。

A.注释部分可单独占用一行,也可跟在语句的后面B.函数体定界符也可用一对方括号"[ ]"C.C语言源程序每一行就是一条语句D.由于C语言源程序都是从main()函数开始执行,所以main()函数必须位于程序文件最前面0125、下面叙述错误的是()。

A.所有语句都必须以分号";"结束B.语句是构成C语言源程序的基本单位C.C语言源程序必须包含一个main()函数D.注释部分在程序编译和运行时不起作用0126、main()函数的位置()。

A.必须位于程序文件的最前面B.必须位于用户自定义函数的前面C.可位于用户自定义函数之前,也可位于用户自定义函数之后D.必须位于用户自定义函数的后面0127、()是结构化程序设计应遵循的原则。

A.选用的控制结构可有多个入口和一个出口B.根据需要可使用嵌套基本控制结构表示程序逻辑C.应使用顺序、选择、循环三种基本控制结构表示程序逻辑D.为提高程序效率,应尽量使用Goto语句0128、描述一个算法可以有不同的方式,常见的有()。

A.汇编语言、高级语言和低级语言B.自然语言、流程图和伪代码C.机器语言、汇编语言和高级语言D.高级语言、自然语言和伪代码0224、下列不属于C语言数据类型的是()。

A.双精度型B.枚举类型C.复数类型D.长整型0225、下列合法的浮点数的是()。

A..65B.E2C.2E0.5D.1230226、下列不合法的字符常量的是()。

A.'\t'B.'\n'C.'\\'D."a"0227、下列()是不正确的常量形式。

A.'x5'B.1.6E6C.1E-2D."\0"0228、下列()是不合法的用户标识符。

A._f6B.divC.5xD._num0324、若已定义:int n=2; double x=2.5; 则下列表达式中不符合语法的是()。

2010c语言上机题库100套

2010c语言上机题库100套
void fun( int *a, int *b)
{ int i, j ;
for(i = 0 ; i < M ; i++) b[i] = 0 ;
for(i = 0 ; i < N ; i++) {
j = a[i] / 10 ;
if(j > 10) b[M - 1]++ ; else b[j]++ ;
/************found************/
if n = = 0
return 1.0 ;
while( n >1 && n < 170 )
/************found************/
result *= n--
return result ;
第1套:
1.填空题
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数为:739。
void fun(unsigned long *n)
{ unsigned long x=0, i; int t;
i=1;
while(*n)
/**********found**********/
{ t=*n % __1__;
/**********found**********/
if(t%2!= __2__)
{ x=x+t*i; i=i*10; }
*n =*Leabharlann /10; } 第2套:

2010级C语言复习题(精简)

2010级C语言复习题(精简)

2,2,2
2,2,3
C
单选题
第 3 页
序号
题目 以下程序的输出结果是: main() { int a=5,b=4,c=6,d;
A
B
C
D
正确 答案
47 printf("%d\n",d=a>b?(a>c?a:c):( b)); } 假定所有变量均已正确说明,下列程 序段运行后x的值是: a=b=c=0;x=35; if(!a) x--; else if(b) ; if(c) x=3; else x=4; 执行表达式k = ( 10>12 ? 15 :6>5 ? 8 :9 )后,变量k的值为: 以下程序运行后,如果从键盘上输人 5,则输出结果是: main( ) { int x; scanf("%d",&x); if(x--<5) printf("%d",x); else printf("%d",x++); } 以下程序段的输出结果是: int k, j , s ; for(k=2;k<6;k++,k++) { s=1; for (j=k;j<6;j++) s+=j; } printf("%d\n",s); 以下程序段的输出是: int i,j,m=0; for (i=1;i<=15;i+=4) for (j=3;j<=19;j+=4) m++; printf("%d\n",m); 有以下程序 main() { int i=0,s=0; do { if (i%2) { i++; continue; } i++; s += i; } while( i<7 ); printf("%d\n", s); } 执行后输出结果是:

2010年计算机等级考试二级C语言上机习题汇总

2010年计算机等级考试二级C语言上机习题汇总

2010年计算机等级考试二级C语言上机习题汇总一、改错题【分析】:改错题的错误一般可分为两类,一类是语法错误,这类错误可通过调试程序改正,较容易;另一类是逻辑错误,这类错误程序能运行,但结果不正确,这类错误相对较难,修改前必须要看懂和理解程序。

#include"stdio.h"#define n 4 #define m 3 /*语法错,#define m 3需另起一行*/int a[n][m],s[m];p(int j)/*此函数的功能为:找出a数组中第j列的最小元素的值及行号,函数成功运行后,i中即为j列的最小元素的行号,s[j]中即为j列的最小元素的值*/{intk,i,x;x=a[0][j];i=0; /*逻辑错,从函数的功能可知,a[0][j]也应赋值给s[j],所以x=a[0][j]应改为s[j]=x=a[0][j]*/for(k=1;k<N;K++)< p>if(a[k][j]<X)< p>{i=k;s[j]=x=a[k][j];}return i;}main(){int index[m],i,j,k;for(i=0;i<N;I++)< p>for(j=0;j<M;J++)< p>scanf("%d",a[i][j]);/*语法错,但编译时不会报错,scanf语句的一般形式为scanf(格式控制,地址表列),所以a[i][j]应改为&a[i][j])*/for(j=0,j<M;J++)< p>printf("a[%d,%d]=%d\n",index[j],j,s[j]);}i=s[1];k=0; /*逻辑错,数组s中存放的是a数组中每一列的最小值,比较时应从数组的第0个元素开始,而下面的for循环是从第1个元素开始的,所以i=s[1]应改为i=s[0]*/for(j=1;j<>if(s[j]<I)< p>{i=s[j];k=j;}printf("min=a[%d,%d]=%d",index[k],k,i); }二、编程题【分析】:本题的主要功能是建立一个3行8列的二维数组,并给其元素赋值,其中第1、2行的值可通过递推公式xi+1=(25*xi+357)%1024得到,第三行的值取前两行同列元素的最大公约数,所以编程时可用一个函数来实现求公约数的算法。

2010春江苏省计算机二级C语言试题与答案(笔试)

2010年春江苏省计算机等级二级C考试试题第一部分计算机基础知识1.下面关于通信技术的叙述中,错误的是___1_d_ 。

A.任何一个通信系统都有信源、信道和信宿这三个基本组成部分,B.为了实现远距离传输信息,在模拟通信和数字通信中均采用载波技术C.为了降低传输信息的成本,在通信中广泛采用多路复用技术D.数字通信系统的一个主要性能参数是信道带宽,它指实际进行数据传输时单位时间内传输的二进位数目2.在下列有关集成电路及其应用的叙述中,错误的是___2__b 。

A.集成电路的制造工序繁多,工艺复杂且技术难度高B.经过抛光后的硅片称为晶圆,每个晶圆最多可以制成一个合格的集成电路芯片C.IC卡分为接触式IC卡和非接触式IC卡,后者通常又称为射频卡或感应卡D.集成电路应用十分广泛,目前我国第2代居民身份证中就有集成电路芯片3.在下列有关数字技术的一些叙述中,错误的是_____3c____ 。

A.数字技术是采用有限个状态(例如"0"和"1")来表示、处理、存储和传输信息的B.在逻辑代数中,1与1进行逻辑加(V)和逻辑乘(^)的结果相同C.任何一个十进制数,均可以精确地转换成等值的二进制数D.在PC机中,通常用原码表示正整数、用补码表示负整数4.在下列有关PC机主机的叙述中,错误的是___4b__ 。

A.BIOS和CMOS存储器安装在主板上,普通用户一般不能自己更换B.由于PC机主板的物理尺寸等没有标准化,所以不同PC机的主板均不能互换C.芯片组是PC机各组成部分相互连接和通信的枢纽,一般由2块VLSI芯片组成D.芯片组决定了主板上所能安装的内存最大容量、速度及可使用的内存条类型5.在下列4个Intel微处理器产品中,采用双核结构的是_____5a_____ 。

A. Core 2 Duo B.Pentium PRO C.Pentium III D.Pentium 46.在下列四种PC机主存储器类型中,目前常用的是_____6__d___ 。

二级C语言真题2010年09月及答案

2010年9月全国计算机等级考试二级笔试试卷C语言程序设计一、选择题下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的(1) 下列叙述中正确的是( )。

A) 线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B) 线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C) 线性表的链式存储结构所需要的存储空唰一般要少于顺序存储结构 D) 上述三种说法都不对(2) 下列叙述中正确的是( )。

A) 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 B) 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 C) 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D) 上述三种说法都不对(3) 软件测试的目的是( )。

A) 评估软件可靠性 B) 发现并改正程序中的错误 C) 改正程序中的错误 D) 发现程序中的错误(4) 下面描述中,不属于软件危机表现的是( )。

A) 软件过程不规范 B) 软件开发生产率低 C) 软件质量难以控制 D) 软件成本不断提高(5) 软件生命周期是指( )。

A) 软件产品从提出、实现、使用维护到停止使用退役的过程 B) 软件从需求分析、设计、实现到测试完成的过程 C) 软件的开发过程 D) 软件的运行维护过程(6) 面向对象方法中,继承是指( )。

A) 一组对象所具有的相似性质 B) 一个对象具有另一个对象的性质 C) 各对象之间的共同性质 D) 类之间共享属性和操作的机制(7) 层次型、网状型和关系型数据库划分原则是( )。

A) 记录长度 B) 文件的大小 C) 联系的复杂程度 D) 数据之间的联系方式(8) 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )。

A) 一对一 B) 一对多 C) 多对多 D) 多对一(9) 数据库设计中反映用户对数据要求的模式是( )。

A) 内模式 B) 概念模式 C) 外模式 D) 设计模式(10) 有三个关系R、S和T如下:则由关系R和S得到关系T的操作是( )。

2010级专升本C语言试题

C语言程序设计考试模拟题集第一卷说明:(1)第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。

(2)答本卷的题目时,要在标准答题纸上编号对应的栏目中,用铅笔将正确答案涂黑。

在试题上直接勾划者步得分。

(3)本卷共70分,其中第1~26题每题2分,第27~32每题3分。

第一部分:基础知识(20题,共40分)(1) 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为。

A) 1.4 B) 1 C) 2.0 D) 2(2) 若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是。

A)a的值是字符CB) a的值是浮点型C)不允许字符型和浮点型相加D) a的值是字符‘A’的ASCII值加上1。

(3) 不合法的main函数命令行参数表示形式是。

A) main(int a,char *c[])B) main(int arc,char **arv)C) main(int argc,char *argv)D) main(int argv,char *argc[])(4) 以下选项中不属于C语言的类型的是。

A) signed short int B) unsigned long intC) unsigned int D) long short(5) 若有说明语句: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);(6) 在16位C编译系统上,若定义long a; ,则能给a赋40000的正确语句是。

2010上半年计算机等考二级C语言真题及答案

一、选择题:1、一个C程序的执行是从(A)。

A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在C 语言中,每个语句必须以(D )结束。

A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由(B )。

A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。

A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有32 个关键字和9 种控制语句。

2、每个源程序有且只有一个main 函数,系统总是从该函数开始执行C语言程序。

3、C 语言程序的注释可以出现在程序中的任何地方,它总是以\* 符号作为开始标记,以*/ 符号作为结束标记。

4、C 语言中,输入操作是由库函数scanf 完成的,输出操作是由库函数printf 完成的。

5、系统默认的C 语言源程序文件的扩展名是.c ,经过编译后生成的目标文件的扩展名是.obj,经过连接后生成的可执行文件的扩展名是.exe 。

6、C 语言的标识符只能由字母、数字和下划线三种字符组成。

第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是(C )。

A. 160.B. 0.12C. 2e4.2D. 0.02、以下选项中,( D )是不正确的C 语言字符型常量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

序号 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
C语言复习题(判断题)
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 题目 注释语句必须用/*和*/括起来,且只能位于某一语句的后面 “a”和‘a’均是占用1个字节的内存空间 的数据 语句while(!E);中的条件!E等价于E==0。 语句while(E);中的条件E等价于E!=0。 若有for( ; ; ){„„},是指循环体执行0次。 程序有死循环的时候,上机编译不能通过。 强制终止死循环可以使用CTRL+BREAK组合键。 执行for(I=0;I<3;I++);后I的值为2。 执行for(I=0,j=0;I<2;I++);j=j+1;后j的值为1。 所有类型的循环都可以进行嵌套使用。 利用break语句可以提前终止循环的执行。 利用continue语句可以提前终止循环的执行。 break语句和continue语句不可以同时出现在同一个循环体内。 switch语句中,每一个case的冒号后面都必须至少跟有一条语句 关于if语句中,条件表达式只能是关系表达式或逻辑表达式 for循环表达式的括号内的3个表达式均不可以省略。 用1作while循环的判断条件,则循环一次也不执行。 在C语言中,实型数据在内存都中占4个字节。 在C语言中,参加算术(+,-,*,/,%)运算的数据可以是任何类型的数据。 若有定义和语句:int a;char c;scanf("%d,%c",&a,&c);当通过键盘输入: 10,‘A’之后,则变量a中存放的是10,变量c中存放的是‘A’。 C语言中,变量名只能是小写字母表示,符号常量名可用大写表示 在C语言中,变量可以不要定义,直接使用 一个C语言程序总是从main主函数开始执行的 程序段:i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);其结果9,10,9,10. while循环的循环体可能一次也不会执行。 表达式j=-i++和j=-(i++)不相等 C语言中多个以“;”结束的语句不能放在同一行。 以下常数:'101',e3,’\78’,12e2.5都是不合法的。 变量说明语句int a=b=c=23;是正确的。 C语句:3*x*x+4*x+1+6sin(x)=y是可以允许的。 C语言中/*..*/之间的注释内容是不能跨行的。 C语言中强制类型转换不会改变原变量的原有数据类型。 C语言中放在""之间的内容都被视为字符串的一个构成部分,都可以在屏幕上原样显示。 字符型数据不可以和整数数据一起进行算术运算。 C语言是严格区分大写和小写的,因次主函数不能写成main()以外的其他形式。 C语言程序是从源文件的第一条语句开始执行的。 C语言对其数据在内存中所占用的实际字节数是有明确规定的。 在程序中可以对数值数组中的数据进行整体使用 如果strcmp(s1,s2)的返回值为一个负数,则表明字符串s1一定小于字符串s2 字符数组的输出不能一次性的整体输出。 用scanf函数输入的字符串不可以带空格。 用gets函数输入的字符串可以带空格。 实现两个字符串的复制可以使用str1=str2;语句。 使用strcpy函数可以实现两个字符串的复制。 使用strcat函数可以实现两个字符串的连接。 字符数组的输出不能一次性的整体输出。 引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式。 若有int a[10]={6,7,8,9,10};,则是将5个初值依次赋给a[0]至a[4]。 一个一维数组,它的每一个元素也是类型相同的一维数组时,便构成二维数组 在C语言中,允许用字符串来直接初始化字符数组。 使用strlen函数可以求出一个字符串的实际长度(包含‘\0’字符)。 如有定义char a[]="student";则数组a的长度为7 如有定义char a[20];则可以通过a=“I am a boy”;给a赋值。 如有定义int a[2][3];则数组a的最后一个元素为a[1][2]。 如有定义int a[3][4]={0}; 则数组a的所有元素初值均为0 C语言中数组名实质上是数组的首地址,是一个变量地址,可对其进行赋值 构成数组的各个元素可以有不同的数据类型。 若有说明:int a[10];,则可以用a[10]引用数组a的第10个元素。 判断题 A 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 第 B 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 错 1 页 正 确 B B A A B B A B B A A B B B B B B B B B B B A A A B B A B B B A B B A B A B A B A A B A A B A A A A B B B A A B B B
题目 函数的形参为一个数组,则调用此函数时将数组名作为对应的实参。 do...while的循环体可能一次也不会执行。 char *p[10];定义了一个指向字符数组的指针变量。 数组名实际上是此数组的首地址,所以数组名相当于一个指针变量。 do...while语句与while语句的区别仅仅是关键字while的位置不同。 使用文件前必须先打开文件 fputc函数的作用是把一个字符写到磁盘文件中去。 如果希望向文件的末尾添加新的数据,可以选择“W+”方式打开文件 ( )。 如果文件以二进制形式打开,用fread和fwrite函数就可以读写任何类型的信息( )。 当文件操作完成后必须使用fclose命令关闭文件 ( )。 C语言中,文件都是以二进制形式存储。 使用指针技术,可以通过修改形参变量的值达到修改实参变量的值的目的。 因为用字符数组和字符指针变量都能实现字符串的存储和运算,因此它们二者是完全等价的。 C语言中,认为键盘是标准输入文件stdin C语言中,认为显示器是标准输出文件stdout C语言中,文件都是以ASCII码形式存储。 C语言中,文件是以记录(record)组成。 C语言中,文件存取是以字节为单位的。 fopen(“c:\test.dat”,”r”)的作用是打开一个磁盘文件,此文件可以被执行写操作 fopen(“test.txt”,”r”)表示为写操作打开一个二进制文件 预处理命令行必须以#开头,且最后要用分号结尾。 在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。 *p++等价于*p(++)。 函数定义void max(int a,int b)表示该函数的返回值不确定。 在C语言中,函数体中变量的隐含存储类别是自动变量auto。 return语句作为函数的出口,在一个函数体内只能有一个。 在C程序中,函数不能嵌套定义,但可以嵌套调用。 C语言的源程序中必须包含库函数。 在C程序中,函数调用不能出现在表达式语句中。 在C函数中,形参可以是变量、常量或表达式。 在主函数main( )中定义的变量都可以在其它被调函数中直接使用。 在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 C语言程序中的main( )函数必须放在程序的开始部分。 外部类型的变量作用范围大,编程中应多用外部变量。 当函数实参中使用指针变量时,形参变量也必须使用指针变量。 在C语言中,每一个变量在内存里占用的单元数都是相同的。 *p++等价于(*p)++。 指针变量里存放的是地址值,因此指针变量只能是int型的。 一个变量的指针就是该变量的地址。 一个指针变量加1表示将该指针变量的原值(地址)加1。 有如下程序段:int i, j = 2, k, *p = &i;k = *p + j;这里出现的两个“*”号,含义是一样的。 通过指针变量,就能间接地得到它所指向的变量的值 说明语句:int *p, p1, p2;只说明了一个能指向int型变量的指针。 有说明:int *p;且p指向地址为1500的内存单元,那么经过操作“p++;”后,p将指向1501的内存单 数组元素可以是不同数据类型的。 如果初值表中的初值个数少于数组长度,那么C语言编译程序会自动把剩余的元素初始化为初值表中 的最后一个值。 主调函数把单个数组元素传递给修改该元素值的被调函数时,主调函数就能够得到修改后的值。 设p是指向数组a的指针变量,则a[i]和p[i]等价。 在C语言中,所谓指针型数据,即指该数据是一个地址。 有一个一维数组a[10],那么a与&a[0]等价。 如有说明:int b[10], *p = b;表明在使用时b与p就完全等价了。 数组中的每一个元素相当于一个变量。若要让一个指针变量指向它,必须用“&数组元素”的方法向 该指针变量赋值。
A 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对 对
相关文档
最新文档