当前位置:文档之家› 2007年9月全国计算机等级考试二级C语言笔试试题-中大网校

2007年9月全国计算机等级考试二级C语言笔试试题-中大网校

2007年9月全国计算机等级考试二级C语言笔试试题-中大网校
2007年9月全国计算机等级考试二级C语言笔试试题-中大网校

2007年9月全国计算机等级考试二级C语言笔试试题

总分:100分及格:60分考试时间:120分

(1)-(10)每题2分

(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. A)数据的逻辑结构与存储结构必定是一一对应的

B. B)由于计算机存储空间是向量式存储结构,因此,数据的存储结构一定是线性结构

C. C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

D. D)以上三种说法都不对

(7)冒泡排序在最坏的情况下比较次数是()。

A. n(n+1)/2

B. nlog2n

C. n(n-1)/2

D. n/2

(8)一颗二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为()。

A. 219

B. 221

C. 229

D. 231

(9)下列叙述中正确的是()。

A. 数据库系统是一个独立的系统,不需要操作系统的支持

B. 数据库技术的根本目标是要解决数据的共享问题

C. 数据库管理系统就是数据库系统

D. 以上三种说法都不对

(10)下列叙述中正确的是()。

A. 为了建立一个关系,首先要构造数据的逻辑关系

B. 表示关系的二维表中各元组的每一个分量还可以分成若干数据项

C. 一个关系的属性名表称为关系模式

D. 一个关系可以包括多个二维表

(11)-(50)每题1分

(1)C语言源程序名的后缀是()。

A. .exe

B. .C

C. .obj

D. .cp

(2)可在C程序中用作用户标志符的一组是()。

(3)以下选项中,合法的一组C语言数值常量是()。

A. 028

B. 12.

C. .177

D. 0x8A

.5e-30Xa234e1.510,000

-0xf4.5e00abc3.e5

(4)以下叙述中正确的是()。

A. C语言程序将从源程序中第一个函数开始执行

B. 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C. C语言规定必须用main作为主函数名,程序从此开始执行,在此结束。

D. main可作为用户标志符,所以命名任意一个函数作为主函数

(5)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。

A. scanf(“%d”,a,b,

B. scanf(“%d%d%d”,a,b,

C. scanf(“%d”,p);

D. scanf(“%d”,&p);

(6)以下关于long,int和short类型数据占用内存大小的叙述中正确的是()。

A. 均占4个字节

B. 根据数据的大小来决定所占内存的字节数

C. 由用户自己定义

D. 由C语言编译系统决定

(7)若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A. x=y==5;

B. x=n%2.5

C. x+n=I;

D. x=5=4+1;

(8)有以下程序段int j; float y; char name[50]; scanf (“%2d%f%s”,&j,&y,name); 当执行上述程序段是,从键盘输入55566 7777abc 后,y的值为()。

A. 55566.0

B. 566.0

C. 7777.0

D. 566777.0

(9)若变量已正确定义,有以下程序段i=0; do printf(“%d,”,i); while(i++); printf(“%d”,i); 其输出结果为()。

A. 0,0

B. 0,1

C. 1,1

D. 程序进入无险循环

x的平方根x>=0

(10)有以下计算公式y= -x的平方根x<0 若程序前面已在命令中包含math.h文件,不能正确计算上述公式的是()。

A. if(x>=0)y=sqrt(x);

B. y=sqrt(x);

elsey=sqrt(-x);if(x<0)y=sqrt(-x);

C. if(x>=0)y=sqrt(x);

D. y=sqrt(x>=0?x:-x);

if(x<0)y=sqrt(-x);

(11)设有条件表达式:(EXP)?i++:j--,则以下表达式中与(EXP)完全等价的是()。

A. (EXP==0)

B. (EXP!=0)

C. (EXP==1)

D. (EXP!=1)

(12)有以下程序#include main(){ int y=9; for(; y>0; y--)if (y%3==0)printf(“%d”,--y); } 程序运行结果是()。

A. 741

B. 963

C. 852

D. 875421

(13)已有定义,char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是()。

A. isupper(

B. ’A’<=c<=’Z’

C. ’A’<=c&&c<=’Z’

D. c<=(‘z’-32)&&(‘a’-32)<=c

(14)有以下程序#include<stdio.h> main(){ int i,j,m=55; for(i=1;i<=3;i++)for (j=3;j<=i;j++)m=m%j; printf(“%d”,m); } 程序的运行结果是()。

A. 0

B. 1

C. 2

D. 3

(15)若函数调用时的实参为变量,以下关于函数形参和实参的叙述正确的是()。

A. 函数的实参和其对应的形参共占同一个存储单元

B. 形参只是形式上的存在,不占存储单元

C. 同名的实参和形参占同一存储单元

D. 函数的形参和实参分别占不同的存储单元

(16)已知字符’A’的ASCII码值是65,字符变量c1的值是’A’,c2的值是’D’。执行语句printf(“%d,%d”,c1,c2-2);后输出结果是()。

A. A,B

B. A,68

C. 65,66

D. 65,68

(17)以下叙述中错误的是()。

A. 改变函数形参的值,不会改变对应的实参的值

B. 函数可以返回地址值

C. 可以给指针变量赋一个整数作为地址值

D. 当在程序的开头包含头文件stdih时,可以给指针变量赋NULL

(18)以下正确的字符串常量是()。

A. ”\\\”

B. ’abc’

C. OlympicGames

D. ””

(19)设有定义:char p[]={‘1’,’2’,’3’},*q=p;以下不能计算出一个char型数据所占字节数的表达式是()。

A. sizeof(p)

B. sizeof(char)

C. sizeof(*q)

D. sizeof(p[0])

(20)有以下函数int aaa(char *s){ char *t=s; while(*t++); t--; return(t-s); } 以下关于aaa函数的功能的叙述正确的是()。

A. 求字符串s的长度

B. 比较两个串的大小

C. 将串s复制到串t

D. 求字符串s所占字节数

(21)若有定义语句:int a[3][6];按在内存中的存放顺序,a数组的第10个元素是()。

A. a[0][4]

B. a[1][3]

C. a[0][3]

D. a[1][4]

(22)有以下程序#include<stdio.h> void fun(char **p){ ++p; printf(“%s\n”,*p); } main(){ char *a[]={“Morning”,”Afternoon”,”Evening”,”Night”}; fun(A.; } 程序的运行结果是()。

A. Afternoon

B. fternoon

C. Morning

D. orning

(23)若有定义语句,int a[2][3],*p[3];则以下语句中正确的是()。

A. p=a;

B. p[0]=a;

C. p[0]=&a[1][2];

D. p[1]=&a;

(24)有以下程序#include<stdio.h> void fun(int *a,int n)/*fun函数功能是将a所指的数组元素从大到小排序*/ { int t,i,j; for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if (a<a[j]){ t=a;a=a[j];a[j]=t; } } main(){ int c[10]={1,2,3,4,5,6,7,8,9,0},i; fun(c+4,6); for(i=0;i<10;i++)printf(“%d,”, C.; printf(“\n”); } 程序的运行结果是()。

A. 1,2,3,4,5,6,7,8,9,0

B. 0,9,8,7,6,5,1,2,3,4

C. 0,9,8,7,6,5,4,3,2,1

D. 1,2,3,4,9,8,7,6,5,0

(25)有以下程序#include<stdio.h> int fun(char s[]){ int n=0; while(*s<=’9’&&*s>=’0’){ n=10*n+*s-‘0’;s++;} return(n); } main(){ char s[10]={‘6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’}; printf(“%d\n”,fun(s)); } 程序的运行结果是()。

A. 9

B. 61490

C. 61

D. 5

(26)当用户要求输入的字符串中含有空格时,应使用的输入函数是(此题先少打了个串字,已改正)

A. scanf()

B. getchar()

C. gets()

D. getc()

(27)以下关于字符串的叙述正确的是()。

A. C语言中有字符串类型的常量和变量

B. 两个字符串中的字符个数相同时才能进行字符串大小的比较

C. 可以用关系运算符对字符串的大小进行比较

D. 空串一定比空格打头的字符串小

(28)有以下程序#include <stdio.h> void fun(char *t,char *s){while(*t!=0)t++; while(*t++=*s++)!=0); } main(){char ss[10]=”acc”,aa[10]=”bbxxyy”; fun(ss,a A.; printf(“%s,%s\n”,ss,a A.; } 程序的运行结果是()。

A. accxyy,bbxxyy

B. acc,bbxxyy

C. accxxyy,bbxxyy

D. accbbxxyy,bbxxyy

(29)有以下程序#include <stdio.h> #include <string.h> void fun(char s[][10],int n){char t; int i,j; for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)/*比较字符串的首字符大小,并交换字符串的首字符*/ if(s[i][0]<s[j][0]){t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;} } main(){char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”}; fun(ss,5); printf(“%s,%s\n”,ss[0],ss[4]); } 程序的运行结果是()。

A. xy,aaaacc

B. aaaacc,xy

C. xcc,aabcc

D. acc,xabcc

(30)在一个C源程序文件中所定义的全局变量,其作用域为()。

A. 所在文件的全部范围

B. 所在程序的全部范围

C. 所在函数的全部范围

D. 由具体定义位置和extern说明来决定范围

(31)有以下程序#include <stdio.h> int a=1; int f(int C.{ static int a=2; c=c+1; return (a++)+c; } main(){int i,k=0; for(i=0;i<2;i++){int a=3;k+=f(A.; } k+=a; printf(“%d\n”,k); } 程序的运行结果是()。

A. 14

B. 15

C. 16

D. 17

(32)有以下程序#include<stdio.h> void fun(int n,int *p){ int f1,f2; if (n==1||n==2)*p=1; else { fun(n-1,&f1); fun(n-2,&f2); p=f1+f2; } } main (){ int s; fun(3,&s); printf(“%d\n”,s); } 程序运行的结果为()。

A. 2

B. 3

C. 4

D. 5

(33)若程序中有宏定义行:#define N 100 则以下叙述中正确的是()。

A. 宏定义行中定义了标志符N的值为整数100

B. 在编译程序对C源程序进行编译预处理时用100替换标志符N

C. 对C源程序进行编译时用100替换标志符N

D. 在运行时用100替换标志符N

(34)以下关于typedef的错误是()。

A. 用typedef可以增加新类型

B. typedef只是将已存在的类型用一个新的名字代表

C. 用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名

D. 用typedef为类型说明一个新名,通常可以增加程序的可读性

(35)有以下程序#include<stdio.h> struct tt { int x; struct tt *y; }*p; struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a}; main(){ int I; p=a; for(i=1;i<=2;i++)printf (“%d”,p->x); p=p->y; } 程序的运行结果是()。

A. 20,30

B. 30,17

C. 15,30

D. 20,15

(36)有以下程序#include<stdio.h> #include<string.h> typedef struct {char name[9]; char sex; float score[2];}STU; STU f(STU A.{ STU b={“Zhao”,’m’,85.0,90.0}; int I; strcpy(https://www.doczj.com/doc/dc11318000.html,,https://www.doczj.com/doc/dc11318000.html,); a.sex=b.sex; for(i=0;i<2;i++)a.score=b.score; return a; } main(){ STU c={“Qian”,’f’,95.0,92.0},d; d=f(C.; printf (“%s,%c,%2.0f,%2.0f\n”,https://www.doczj.com/doc/dc11318000.html,,d.sex,d.score[0], d.score[1]); } 程序的运行结果是()。

A. Qian,f,95,92

B. Qian,m,85,90

C. Zhao,m,85,90

D. Zhao,f,95,92

(37)设有以下定义union data {int d1; float d2;}demo; 则下面叙述中错误的是()。

A. 变量demo与成员d2所占的内存字节数相同

B. 变量demo中个成员的地址相同

C. 变量demo和各成员的地址相同

D. 若给demd1赋值99,demd2的值是99.0

(38)有以下程序#include <stdio.h> main(){ int a=1,b=2,c=3,x; x=(a^ B.&c; printf(“%d\n”,x); } 程序运行结果是()。

A. 0

B. 1

C. 2

D. 3

(39)读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);其中buffer代表的是()。

A. 一个文件指针,指向待读取的文件

B. 一个整形变量,代表待读取的数据的字节数

C. 一个内存块的首地址,代表读入数据存放的地址

D. 一个内存块的字节数

(40)有以下程序#include<stdio.h> main(){ FILE *fp; it a[10]={1,2,3,0,0}; fp=fopen(“d2.dat”,”wb”); fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose (fp); fp=fopen(“d2.dat”,”rb”); fread(a,sizeof(int),10,fp); for(i=0;i<10;i++)printf

(“%d”, A.; } 程序运行结果是()。

A. 1,2,3,0,0,0,0,0,0,0

B. 1,2,3,1,2,3,0,0,0,0

C. 123,0,0,0,0,123,0,0,0,0

D. 1,2,3,0,0,1,2,3,0,0

(每空2分,共40分)

(1)软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的_[1]_______

(2)在两种基本测试方法中, _[2]_______测试的原则之一是保证所测模块中每一个独立路径至少要执行一次

(3)线性表的存储结构主要分为顺序存储结构和链式存储结构.队列是一种特殊的线性表,循环队列是队列的_[3]_______存储结构

(4)对下列二叉树进行中序遍历的结果为_[4]_______

(5)在E-R图中距形表示_[5]_______

(6)执行以下程序时输入1234567<CR>,则输出结果是_[6]_______#include <stdio.h> main(){ int a=1,b; scanf("%2d%2d",&a&b);printf ("%d %d\n",a,b); }

(7)以下程序的功能是:输出a、b、c三个变量中的最小值.请填空。#include<stido.h> main(){ int a,b,c,t1,t2; scanf("%d%d%d",&a,&b,&c); t1=a<b? _[7]_______; t2=c<t1? _[8]_______; printf("%d\n",t2); }

(8)以下程序的输出结果是_[9]_______#include <stdio.h> main(){ int n=12345,d; while (n!=0){ d=n%10; printf("%d",d); n/=10;} }

(9)有以下程序段,且变量已正确定义和赋值for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1)); printf("s=%f\n\n",s); 请填空,使下面程序段的功能为完全相同s=1.0;k=1; while(_[10]_______){ s=s+1.0/(k*(k+1)); _[11]_______;} printf("s=%f\n\n",s);

(10)以下程序的输出结果是_[12]_______. #include <stido.h> main(){ int i; for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A'); printf("\n"); }

(11)以下程序的输出结果是_[13]_______#include <stdio.h> #include <string.h> char *fun(char *t){ char *p=t; return(p+strlen(t)/2); } main(){ char *str="abcdefgh"; str=fun(str); puts(str); }

(12)以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换.请填空. #include <stdio.h> viod f(int x[],int n){ int p0,p1,i,j,t,m; i=j=x[0]; p0=p1=0; for(m=0;m<n;m++){ if(x[m]>i){i=x[m]; p0=m;} else if(x[m]<j){j=x[m]; p1=m;} } t=x[p0]; x[p0]=x[n-1]; x[n-1]=t; t=x[p1];x[p1]= _[14]_______; _[15]_______=t; } main(){ int a[10],u; for(u=0;u<10;u++)scanf("%d",&a[u]); f(a,10); for(u=0;u<10;u++)printf("%d",a[u]); printf ("\n"); }

(13)以下程序统计从终端输入的字符中大写字母的个数,num[0]中统计字母A的个数,num[1]中统计字母B的个数,其它依次类推.用#号结束输入,请填空. #include <stdio.h> #include <ctype.h> main(){ int num[26]={0},i; char c; while ((_[16]_______)!='#')if(isupper(c))num[c-‘A’]+= _[17]_______; for (i=0;i<26;i++)Printf("%c:%d\n",i+'A',num[i]); }

(14)执行以下程序的输出结果是_[18]_______#include <stido.h> main(){ int i,n[4]={1}; for(i=1;i<=3;i++){ n[i]=n[i-1]*2+1; printf("%d",n[i]); } }

(15)以下程序的输出结果是_[19]_______#include <stdio.h> #define M 5 #define N M+M main(){ int k; k=N*N*5; printf("%d\n",k); }

(16)函数main()的功能是:在带头结点的单链表中查找数据域中值最小的结点.请填空

#include <stdio.h> struct node { int data; struct node *next; }; int min(struct node *first)/*指针first为链表头指针*/ { strct node *p; int m; p=first->next; m=p->data;p=p->next; for(;p!=NULL;p=_[20]_______)if (p->data<m)m=p->data; return m; }

答案和解析

(1)-(10)每题2分

(1) :D

(2) :B

(3) :C

(4) :A

(5) :A

(6) :D

(7) :C

(8) :A

(9) :B

(10) :A

(11)-(50)每题1分

(1) :B

(2) :A

(3) :B

(4) :C

(5) :C

(6) :D

(7) :A

(8) :B

(9) :B

(10) :B

(11) :B

(12) :C

(13) :B

(14) :B

(15) :D

(16) :C

(17) :C

(18) :D

(19) :A

(20) :A

(21) :B

(22) :A

(23) :C

(24) :D

(25) :C

(26) :C

(27) :D

(28) :D

(29) :D

(30) :D

(31) :A

(32) :A

(33) :B

(34) :A

(35) :D

(36) :C

(37) :D

(38) :D

(39) :C

(40) :D

(每空2分,共40分) (1) :

无歧义性(2) :

白盒测试(3) :

顺序(4) : ACBDFEHGP(5) : 实体集(6) :

1234(7) :

a:bc:t1(8) :

54321(9) :

k<=nk++(10) : ACE(11) :

efgh(12) :

x[0]x[0](13) :

c=getchar()1(14) : 3715(15) :

55(16) :

p->next

嵌入式C语言经典笔试题目

嵌入式c语言经典笔试题目 1 .用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1) #define语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3)意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。 4)如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。 2 .写一个"标准"宏MIN,这个宏输入两个参数并返回较小的一个。 #define MIN(A,B)((A)<= (B) ? (A) : (B)) 这个测试是为下面的目的而设的: 1)标识#define在宏中应用的基本知识。这是很重要的。因为在嵌入(inline)操作符变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。 2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。 3)懂得在宏中小心地把参数用括号括起来 4)我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事? least = MIN(*p++, b); 3.预处理器标识#error的目的是什么? 如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。 死循环(Infinite loops) 4.嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 这个问题用几个解决方案。我首选的方案是: while(1) { } 一些程序员更喜欢如下方案: for(;;) { } 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,

全国计算机等级考试二级C语言真题

2009年3月二级C语言笔试真题((1)—(10)每小题2分,(11)—(50)每题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是 A)栈是“先进先出”的线性表 B)队列是“先进先出”的线性表 C)循环队列是非线性结构 D)有序性表既可以采用顺序存储结构,也可以采用链式存储结构 (2)支持子程序调用的数据结构是 A)栈B)树C)队列D)二叉树 (3)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是 A)10B)8C)6D)4 (4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 B)简单选择排序 C)直接插入排序 D)堆排序 (5)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是 A)编译软件 B)操作系统 C)教务管理系统 D)汇编程序 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试的程序进行“错误定位”是程序调试的必要步骤 C)程序调试通常也称为Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 B)数据库系统设计 C)数据库维护 D)数据库管理员培训 (9)有两个关系R,S如下: 由关系R通过运算得到关系S,则所使用的运算为 A)选择B)投影C)插入D)连接 (10)将E-R图转换为关系模式时,实体和联系都可以表示为A)属性B)键C)关系D)域 (11)以下选项中合法的标识符是 A)1-1B)1—1C)-11D)1-- (12)若函数中有定义语句:intk;,则 A)系统将自动给k赋初值0 B)这时k中值无定义 C)系统将自动给k赋初值-1 D)这时k中无任何值 (13)以下选项中,能用作数据常量的是 A)o115B)0118C))115L (14)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1 B)x++,2*x C)x*=(1+x)

大学C语言考试试题及答案

精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

c语言笔试题(答案)(精心整理)

笔试题 一、填空题(每个空4分,共28分) 1)struct tagABC { char name[10]; char sex; long sno; float score[4]; }*pAbc;(四字节对齐) pAbc=NULL; 那么,执行pAbc+=2;之后pAbc的值为(64 ) 2)如下代码,最终value的值是(8) int *p1,*p2; int value; p1=(int*)0×400; p2=(int*)0×408; value = p2-p1; 3)如下代码,printf的结果为(2) #include〈stdio.h〉 #include〈string.h〉 void main(void) { char acNew[20]= “\\0\0”; printf(“%d\n”,strlen(acNew)); } 4) 有如下程序段,运行该程序的输出结果是(33) main () { int y=3,x=3,z=1; printf(“%d%d\n”,(++x,y++),z+2); } 5)设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值为(2)6)struct tagAAA { Unsigned char ucId:1; Unsigned char ucPara0:2; Unsigned char ucState:6; Unsigned char ucTail:4; Unsigned char ucAvail; Unsigned char unTail2:4; Unsigned long ulData; }AAA_S 问:AAA_S在字节对齐分别为1,4情况下,占用的空间大小分别是多少?( 9)(12 )

计算机二级c语言历年真题及答案

计算机二级c语言历年真题及答案【篇一:国家计算机二级c语言历年真题及答案】 class=txt>c语言程序设计 (考试时间90分钟,满分100分) 一、选择题((1)—(10)、(21)—(40)每题2分,(11)—(20)每题1分,共70分) (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) 可封装 d) 自顶向下

c) 模块化 d) 逐步求精 (7)软件详细设计产生的图如下: 该图是 a) n-s图 b) pad图 c) 程序流程图 d) e-r图 (8)数据库管理系统是 a)操作系统的一部分 b) 在操作系统支持下的系统软件 c) 一种编译系统 d) 一种操作系统 (9)在e-r图中,用来表示实体联系的图形是 a) 椭圆图 b) 矩形 c) 菱形 d) 三角形 (10)有三个关系r,s和t如下: 其中关系t由关系r和s通过某种操作得到,该操作为 a) 选择 b) 投影 c) 交 d) 并 (11)以下叙述中正确的是 a)程序设计的任务就是编写程序代码并上机调试 b)程序设计的任务就是确定所用数据结构 c)程序设计的任务就是确定所用算法 d)以上三种说法都不完整 (12)以下选项中,能用作用户标识符的是 a)void b)8_8 c)_0_ d)unsigned (13)阅读以下程序

C语言考试试题

试题 课程名称C语言程序设计适用时间 试卷类别 A 适用专业、年级、班 一、选择题(每小题2分, 2×25=50分) 1.下列叙述错误的是( )。 A) C程序中的每条语句都用一个分号作为结束符B) C程序中的每条命令都用一个分号作为结束符 C) C程序中的变量必须先定义,后使用 D) C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写 2.以下叙述不正确的是( )。 A) 一个C源程序必须包含一个main函数B) 一个C源程序可由一个或多个函数组成 C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面 3.C语言中最简单的数据类型包括( )。 A)整型、实型、逻辑型B)整型、实型、字符型 C)整型、字符型、逻辑型D)字符型、实型、逻辑型 4.C语言中运算对象必须是整型的运算符是( )。 A)%= B)/ C)= D)<= 5.若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。 A)a= =1 B)++i;C)a=a++=5;D)a=int(i); 6.下列运算符中优先级最高的是( )。 A) < B) + C) && D) ! = 7.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型是( )。 A) int B) float C) double D) char 8.设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是( )。 A)把x和y按从大到小排列B)把x和y按从小到大排列C)无确定结果D)交换x和y中的值 9.设整型变量a,b的值均为8, printf("%d,%d",(a++,++b),b--);的输出是( )。 A)8,8 B)8,7 C)9,9 D)8,9 10.若有语句scanf("%d%d",&a,&b);要使变量a,b分别得到10和20,正确的输入形式为( )。 A)10 20 B)10,20 C)1020 D)10:20 11.判断char型变量ch是否为大写字母的正确表达式是( )。 A)'A'<=CH<='Z' B) (CH>='A')& (CH<='Z') C)(CH>='A')&& (CH<='Z') D) ('A'<=ch)AND('Z'>=ch) 12.有如下程序 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=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 13.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下: main( ) { int n,k; float score,sum,ave; sum=0.0; for(n=1;n<=10;n++) { for(k=1;k<=4;k++) { scanf("%f",&score); sum+=score; } ave=sum/4.0; printf("NO%d:%f\n",n,ave); } } 上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是( )。 A) sum=0.0; B) sum+=score; C) ave=sun/4.0; D) printf("NO%d:%f\n",n,ave);

c语言笔试题目及答案

c语言笔试题目及答案 C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面是c语言笔试题目及答案,请参考。 c语言笔试题目及答案 一、选择题((1)~(10)每小题2分,(11)~(50)每小题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选 项涂写在答题卡相应位置上,答在试卷上不得分。 (1)数据的存储结构是指________。 A)存储在外存中的数据 B)数据所占的存储空间量 C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示 答案:D 评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。 (2)下列关于栈的描述中错误的是________。 A)栈是先进后出的线性表

B)栈只能顺序存储 C)栈具有记忆作用 D)对栈的插入与删除操作中,不需要改变栈底指针 答案:B 评析:栈是一种特殊的线性表,又称先进后出表(FILO—First In Last Out)。 (3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ________。 A)冒泡排序为n2 B)冒泡排序为n C)快速排序为n D)快速排序为n(n一1)/2 答案:D 评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。 (4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。 A)log2n B)n/2 C)n D)n+l 答案:C 评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。对长度为n的线性表进行顺序查找,在最坏情况下需要比较

全国计算机二级C语言操作题题库

1.程序Cmody021.c输出如下所示图形: * *** ***** ******* ********* #include void main() { int i,j;for(i=1;i<=5;i++) { for(j=1;j<=5-i;j++)printf(" "); for(j=1;j<=2*i-1;j++) printf("*"); printf("\n"); } } 2.程序Cmody032.c的功能是:输出201-300之间的所有素数,统计总个数。#include #include void main() { int num; printf("\n"); num=fun(); printf("\nThe total of prime is %d",num); getch(); } int fun() { int m,i,k,n=0; for(m=201;m<=300;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) /**/if(m/i==0)/**/ break; /**/if(i==k)/**/ { printf("%-4d",m); n++;

if(n%10==0)printf("\n"); } } return n; } 3. 程序Cmody041.c,其功能是统计输入字符串中小写英文字母的个数。如输入:abcdEFGHIJK123 输出:4 #include #include main() { char str1[128]; /**/int i,len,sum=0;/**/ gets(str1); len=strlen(str1); for(i=0;i='a'&&str1[i]<='z')/**/ sum++; } printf("%d\n",sum); getch(); } 4.程序Cmody051.c,其功能是统计输入字符串中大写英文字母的个数。如输入:abcDEFGH123 输出:5 #include #include main() { /**/char str1[128]/**/ int i,len,sum=0; printf("Please input a string:\n"); scanf("%s",str1); len=strlen(str1); for(i=0;i='A'&&str1[i]<='Z') /**/sum++;/**/

新版计算机二级C语言测试题及答案解析

计算机二级C语言测试题及答案解析计算机二级C语言测试题及答案解析 C语言的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,下面给大家整理了计算机二级C语言测试题及答案,欢迎阅读! 计算机二级C语言测试题及答案解析 1.(A )是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从 C 开始执行。 A、程序中第一条可执行语句 B、程序中第一个函数 C、程序中的main函数 D、包含文件中的第一个函数 3、以下说法中正确的是( C )。

A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B ) 。 A、 C程序的工作过程是编辑、编译、连接、运行 B、 C语言不区分大小写。 C、 C程序的三种基本结构是顺序、选择、循环 D、C程序从main函数开始执行 5.下列正确的标识符是(C )。 A、-a1 B、a[i] C、a2_i D、int t 5~8题为相同类型题 考点:标识符的命名规则 只能由字母、数字、下划线构成

数字不能作为标识符的开头 关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int 为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B )。 A、3ax B、x C、case D、-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是( C )。 A、 %x B、a+b C、a123 D、123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)

C语言考试试卷及答案

2011-2012学年第一学期 C语言程序设计A 课程A卷考试题 共 4 页此第 1 页成绩 一、单项选择题(每小题2分,共40分) 1. C语言中合法的字符常量是() A.n B.’\n’ C.110 D.”n” 2. 有以下程序: main( ) { char ch=’A’; printf(“ch(1)=%d,ch(2)=%c\n”,ch,ch+1); } 程序运行后的输出结果是() A. ch(1)=65,ch(2)=A B. ch(1)=97,ch(2)=A C. ch(1)=65,ch(2)=B D. ch(1)=97,ch(2)=B 3. 能表示a不能被2整除且a、b不相等,但a、b的和等于0的C语言逻辑表达式是() A. a==-b&&a%2==0 B. a!=b&&a+b==0&&a%2 C. !(a%2)&&a==-b D.a%2==0&&a+b==0 4. 以下程序段中语句” printf("i=%d,j=%d\n",i,j);”的执行次数是() int i, j; for(i=3;i ;i--) for(j=1;j<5;j++) printf("i=%d,j=%d\n",i,j); A. 12 B. 20 C. 15 D. 24 5. 执行以下程序段后,x[2]的值是() int x[10]={1,2,3,4,5,6,7,8,9,10},i,j,t; i=0;j=9; while(i

计算机二级C语言测试题及答案解析(一)

2016年计算机二级C语言测试题及答案解析(一)1.(A )是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C 开始执行。 A、程序中第一条可执行语句 B、程序中第一个函数 C、程序中的main函数 D、包含文件中的第一个函数 3、以下说法中正确的是(C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A、C程序的工作过程是编辑、编译、连接、运行 B、C语言不区分大小写。 C、C程序的三种基本结构是顺序、选择、循环 D、C程序从main函数开始执行 5.下列正确的标识符是(C )。

B、a[i] C、a2_i D、int t 5~8题为相同类型题 考点:标识符的命名规则 只能由字母、数字、下划线构成 数字不能作为标识符的开头 关键字不能作为标识符 选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B )。 A、3ax B、x C、case D、-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C )。 A、%x B、a+b C、a123

选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C 中的while为关键字,不满足(3) 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C 。 A、2.5 B、2 C、1 D、3 %为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1;5%

历年全国计算机二级C语言试题库完整

. . . . 参考 50道C 语言知识题 1.以下叙述中正确的是 A)用C 程序实现的算法必须要有输入和输出操作 B)用C 程序实现的算法可以没有输出但必须要有输入 C)用C 程序实现的算法可以没有输入但必须要有输出 D)用C 程序实现的算法可以既没有输入也没有输出 2.下列可用于C 语言用户标识符的一组是 A)void,define,WORDB)a3_3,_123,Car C)For,-abc,IFCaseD)2a,DO,sizeof 3.以下选项中可作为C 语言合法常量的是 A)-80B)-080C)-8e1.0D)-80.0e 4.若有语句:char*line[5];,以下叙述中正确的是 A)定义line 是一个数组,每个数组元素是一个基类型为char 为指针变量 B)定义line 是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line 是一个指针数组,语句中的*号称为间址运算符 D)定义line 是一个指向字符型函数的指针 5.以下定义语句中正确的是 A)inta=b=0;B)charA=65+1,b=′b′; 6.有以下程序段 charch;intk; ch=′a′; k=12; printf("%c,%d,",ch,ch,k);printf("k=%d\n",k); 已知字符a 的ASCII 码值为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 7.有以下程序 main() {inti,s=1; for(i=1;i<50;i++) if(!(i%5)&&!(i%3))s+=i; printf("%d\n",s);} 程序的输出结果是 A)409B)277C)1D)91 8.当变量c 的值不为2、4、6时,值也为"真"的表达式是 A)(c==2)||(c==4)||(c==6) B)(c>=2&&c<=6)||(c!=3)||(c!=5) C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1) 9.若变量已正确定义,有以下程序段

嵌入式C语言面试题汇总(超经典)

第一部分:基本概念及其它问答题 1、关键字static的作用是什么? 这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。 2、“引用”与指针的区别是什么? 答、1) 引用必须被初始化,指针不必。 2) 引用初始化以后不能被改变,指针可以改变所指的对象。 3) 不存在指向空值的引用,但是存在指向空值的指针。 指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。 流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。 3、.h头文件中的ifndef/define/endif 的作用? 答:防止该头文件被重复引用。 4、#include 与#include “file.h”的区别? 答:前者是从Standard Library的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。 5、描述实时系统的基本特性 答:在特定时间内完成特定的任务,实时性与可靠性。 6、全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 答:全局变量储存在静态数据区,局部变量在堆栈中。 7、什么是平衡二叉树? 答:左右子树都是平衡二叉树且左右子树的深度差值的绝对值不大于1。 8、堆栈溢出一般是由什么原因导致的? 答:1.没有回收垃圾资源 2.层次太深的递归调用

计算机二级c语言题库及答案

2016年计算机二级c语言题库及答案 一、选择题(每小题1分,共40小题,共40分) 1.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为( )。 或35 2.下列关于栈的叙述中,正确的是( )。 A.栈底元素一定是最后入栈的元素 B.栈操作遵循先进后出的原则 C.栈顶元素一定是最先入栈的元素 D.以上三种说法都不对 3.下列链表中,其逻辑结构属于非线性结构的是( )0、 A.双向链表 B.带链的栈 C.二叉链表 D.循环链表 4.在关系数据库中,用来表示实体间联系的是( )。 A.网状结构 B.树状结构 C.属性 D.二维表 5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是( )。 :m联系 :n联系 :1联系 :l联系

6.右两个关系R和S如下: 则由关系R得到关系S的操作是( )。 A.自然连接 B.并 C.选择 D.投影 7.数据字典(DD)所定义的对象都包含于( )。 A.软件结构图 B.方框图 C.数据流图(DFD图) D.程序流程图 8.软件需求规格说明书的作用不包括( )。 A.软件设计的依据 B.软件可行性研究的依据 C.软件验收的依据 D.用户与开发人员对软件要做什么的共同理解 9.下面属于黑盒测试方法的是( )。 A.边界值分析 B.路径覆盖 C.语句覆盖 D.逻辑覆盖 10.下面不属于软件设计阶段任务的是( )。 A.制订软件确认测试计划 B.数据库设计 C.软件总体设计 D.算法设计 11.以下叙述中正确的是( )。 A.在C语言程序中,main函数必须放在其他函数的最前面 B.每个后缀为C的C语言源程序都可以单独进行编译 C.在C语言程序中,只有main函数才可单独进行编译

全国计算机等级考试二级C语言真题2013年3月

全国计算机等级考试二级C语言真题2013年3月 (总分40, 做题时间90分钟) 一、选择题 1. 程序流程图中带有箭头的线段表示的是______。 A 图元关系 B 数据流 C 控制流 D 调用关系 答案:C [解析] 在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择C。 2. 结构化程序设计的基本原则不包括______。 A 多态性 B 自顶向下 C 模块化 D 逐步求精 答案:A [解析] 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。 3. 软件设计中模块划分应遵循的准则是______。 A 低内聚低耦合 B 高内聚低耦合

C 低内聚高耦合 D 高内聚高耦合 答案:B [解析] 软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能的高。 4. 在软件开发中,需求分析阶段产生的主要文档是______。 A 可行性分析报告 B 软件需求规格说明书 C 概要设计说明书 D 集成测试计划 答案:B [解析] A错误,可行性分析阶段产生可行性分析报告。C错误,概要设计说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设计阶段编写的文档。B正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。 5. 算法的有穷性是指______。 A 算法程序的运行时间是有限的 B 算法程序所处理的数据量是有限的 C 算法程序的长度是有限的 D 算法只能被有限的用户使用

c语言期中考试试题及答案

中国民航大学2009-2010学年第二学期 《C 语言程序设计》期中考试试卷 课程编号:03402513 试卷类型: A 卷 考试形式:笔试 考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C 语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C 程序的执行是(【2】) 。 【2】 A) 从本程序的主函数开始,到本程序的主函数结束

B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的

C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关 8、下列四组(八进制或十六进制)常数中,正确的一组是(【8】)。【8】 A) 016 0xbf 18 B) 0abc 017 0xa C) 010 -0x11 0x16 D) 0A12 7FF -123 9、下列四组转义字符中,合法的一组是(【9】)。 【9】 A)‘\t’‘\\’‘\n’ B)‘\’‘\017’‘\x’

C语言考试试题

1.若x为int型变量,则执行以下语句后,x的值为-60。 x=6; x+=x-=x*x; x=x-x*x=-30 x=x+x=-60 2.若有定义int a[2][3]; 则对a数组的第i行第j列元素地址的正确引用为a[i]+j。 3.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是*p=*&j。 4.以下叙述正确的是define和if都不能定义为用户标识符。 5. 以下程序的输出结果是2。 #define SQR(X) X*X main() { int a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); a/=k+k*m+m/k+k*m+m printf("%d\n",a); } 6. 以下程序的输出结果是4。 main() {int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1; for(i=0;i<3;i++) for(j=i;j<=i;j++) for(j=i;j<=i;j++) t=t+b[i][j]; { t=t+b[i][j];} printf("%d\n",t); printf("%d\n",t); }_ 7. 编一个程序,打入星期号,输出该星期的英文名字。例如,输入"1"则输出"Monday",说明:星期日编号为0,要求用指针数组处理。 main() { char *name[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday", "Saturday"}; int n; printf("\nInput the number(0-6):"); scanf("%d", &n); if ((n< 7) && (n>=0)) printf("\nThe name is: %s",name[n]); else printf("\nInput error"); } 8. 局部变量是静态存储变量。错误 9. "文件包含"处理是指一个源文件可以将另一个源文件的内容全部包含进来。正确 10. 若有定义:int *p1,*p2;则p1+p2无实际意义。正确 11. 若在函数内定义形参数组a:int a[3][4];则数组a中各元素可在程序的编译阶段得到初值0。错误 12. 以下不能正确定义二维数组的选项是int a[2][]={{1,2},{3,4}};。 13. 以下程序的输出结果是6 15 15。 int d=1; fun(int p) { static int d=5; d+=p; printf("%d ",d); return(d); } main( ) { int a=3; printf("%d \n", fun(a+fun(d))); }

c语言经典面试题

C语言面试题大汇总之华为面试题 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出内容 #include int main(void) { int a,b,c,d; a=10;

c=++a; d=10*a++; printf("b,c,d:%d,%d,%d",b,c,d); return 0; } 答:10,12,120 5、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 答: 1) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。 2) 从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。3) static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对

计算机二级C语言考试编程题题库

计算机c语言编程题库 1、求100之内自然数中最大的能被17整除的数。 void main() { int i; for(i=100;i>0;i--) if(i%17==0)break; printf("%d\n",i); } 2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。 void main() { int a,b,c; for(a=1;a<=9;a++) { for(b=0;b<=9;b++) { for(c=1;c<=9;c++) if(a*100+b*10+c+c*100+b*10+a==1333) printf("%d,%d,%d\n",a,b,c); } } } 3、计算并输出200-400之间不能被3整除的整数的和。 void main() { int i,sum=0; for(i=200;i<=400;i++) if(i%3!=0) sum=sum+i; printf("%d\n",sum); } 4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。 void main() { int i,n=0,sum=0; int a[10]; printf(“请输入10个数:”);

for(i=0;i<10;i++) scanf(“%d”,&a[i]); for(i=0;i<10;i++) if(a[i]>=0) { sum=sum+a[i]; n++;} printf("非负个数是%d,sum=%d\n",n,sum); } 5、求100之内自然数中偶数之和。 void main() { int i,sum=0; for(i=0;i<=100;i++) if(i%2==0) sum=sum+i; printf("sum=%d\n",sum); } 6、输入5个数,求和并输出。要求编写求和的函数。 void main() { int b(int x[],int n); int sum=0; int a[5]; int i; printf("请输入5个数:"); for(i=0;i<5;i++) scanf("%d",&a[i]); sum=b(a,5); printf("sum=%d\n",sum); } int b(int x[],int n) { int i,sum=0; for(i=0;i<5;i++) sum=sum+x[i]; return sum; } 7、编程计算1*2*3+3*4*5+5*6*7+...+99*100*101的值。 void main() { int i,sum=0; for(i=1;i<=99;i=i+2) sum=sum+i*(i+1)*(i+2); printf("%d\n",sum); } 8、编写程序,将用户输入的字符串中所有的字符a用*代替,然后输出。void main()

相关主题
文本预览
相关文档 最新文档