搜档网
当前位置:搜档网 › C语言2008-2009省考笔试题

C语言2008-2009省考笔试题

C语言2008-2009省考笔试题
C语言2008-2009省考笔试题

附录1

计算机水平考试模拟试卷1(二级C)

2008年六月

一、选择题(40分)

1、通常将个人计算机简称为_____

A) PLC B) LCD C) PC D) CRT

2、下列表示存储容量的数据中,最大的是______

A) 1GB B) 211MB C) 220 KB D) 210B

3、将十进制数41转换为二进制数,下面结果中正确的是______

A) 00101001 B) 00101011 C) 00100011 D) 00100101

4、按照计算机应用领域分类,学校使用的成绩管理系统属于_______

A) 实时控制 B) 科学计算 C) 数据处理 D) 计算机辅助设计

5、删除Windows桌面上应用程序的快捷图标,意味着___________

A) 该程序连同其图标一起被删除 B) 只删除了该程序,对应的图标被隐藏

C) 该程序连同其图标一起被隐藏 D) 只删除了图标,对应的程序仍然存在

6、以下关于多媒体技术的叙述中,错误的是______

A) 多媒体技术将各种媒体以数字化的方式集成在一起

B) 多媒体技术就是能用来观看DVD电影的技术

C) 多媒体技术已经成为声、文、图等媒体信息在计算机系统中的综合应用的代名词

D) 多媒体技术和计算机技术的融合开辟出一个多学科交叉、跨行业的崭新领域

7、下列的网络IP地址中,正确的是_____________

A) 249.220.258.202 B)204.250.9 C)202.155.98.C D)202.245.101.201

8、“熊猫烧香”是一种__________

A) 办公软件 B) 杀毒软件 C) 计算机病毒 D) 下载工具

9、下列有关计算机病毒和黑客的说法中,不正确的是___________

A) 所有计算机病毒都可以通过杀毒软件彻底清除

B)计算机黑客是指利用网络入侵别人计算机的人

C) 防范计算机病毒的一种常用办法是在计算机上安装正版的防病毒软件

D) 防范计算机黑客的一种常用办法是在计算机上安装网络防火墙

10、____是程序、数据以及相关文档的集合

A) 软件 B) 程序 C) 指令 D)算法

11、下列关于C语言程序说法正确的是__________

A) C程序书写时,不区分大小写字母 B) C程序书写时,一行只能写一条语句

C) C程序书写时,一条语句可分成几行书写 D)C程序书写时,每行必须有行号

12、C语言中的源程序文件和目标文件的扩展名分别是__________

A) c和obj B) c和exe C) com和 exe D)obj和c

13、以下四项中属于ANSI C 语言关键字的是________

A) CHAR B) define C) max D) return

14、在C语言中,double、long、unsigned int、char类型数据所占字节数分别是________

A) 8,2,4,1 B) 2,8,4,1 C) 4,2,8,1 D) 8,4,2,1

15、设 int a=0,b=1,c=2;,则表达式a?a+b:a+c的值是____________

A) 0 B) 1 C) 2 D) 3

16、下列______是字符型常量

A) ‘\n’ B) “A” C) “\” D) ‘65’

17、已知int x,y;,执行语句x=(y=10-5,y*2),y-5;后,变量x和y 的值分别是_________________

A) x=0,y=5 B) x=10,y=5 C) x=5,y=0 D) x=5,y=5

18、已知int x;,当x为大于1的奇数时,下列值为0的表达式是__________

A) x%2= =1 B)x/2 C) x%2!=0 D) x%2= =0

19、下面程序段执行结果是__________

int i=5,k;

k=(++i)+(++i)+(i++);

printf(“%d,%d”,k,i);

A) 24,8 B) 21,8 C) 21,7 D) 24,7

20、下列正确的赋值语句是___________。

A) 10=a; B) b=45.6 C) c=15*5; D) a+47=c;

21、已知 int x=1, y=2,z=3; , 则逻辑表达式x

A) 1 B) 2 C) 3 D) 4

22、若变量c为char类型,能正确判断出c 为大写字母的表达式是_______

A) ‘A’<=c<=’Z’ B) c>=’A’||c<=’Z’

C) ‘A’<=c and ‘Z’>=c D) c>=’A’&&c<=’Z’

23、已知int x, y; float z; , 以下正确的输入语句是__________

A) scanf(“%d%d%f”,x,y,z); B) scanf(“%d%d%f”,&x,&y,&z);

C) scanf(“%d%6d%6.2f”,&x,&y,&z); D) scanf(“%d%d%f”;&x;&y;&z);

24、执行下面程序:

main()

{ int x=-1;

printf(“%d,%x,%u”,x,x,x);

}

A) -1,-1,-1 B) -1,-ffff,-32768 C) -1,ffff,-32768 D) -1,ffff,65535

25、c语言对于嵌套if语句规定else总是____________匹配。

A)与最外层的if B)与之前最近的if

C)与之前最近的不带else的if D)与最近的{}之前的if

26、下面程序运行结果为__________

main()

{char c=’a’;

if(‘a’

else printf(“UP”);

}

A) LOW B) UP C) LOWUP D) 语句错误,编译不能通过

27、以下叙述正确的是_____________

A) do-while语句构成的循环,在while后的表达式为非零时结束循环

B) do-while语句构成的循环,在while后的表达式为零时结束循环

C) do-while语句构成的循环只能用break语句退出

D) do-while语句构成的循环不能用其他语句构成的循环来代替

28、要使下面程序输出10个整数,则在下划线处填入正确的数是_____________

for(i=0;i<=___________;i+=2)

printf(“%d”,i);

A) 9 B) 10 C) 18 D) 20

29、下列描述中不正确的是___________________

A) 字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出

C) 可以对实型数组进行整体输入,输出

D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值

30、下面不能正确进行初始化操作的语句是____________

A) char s[5]={‘C’,’H’,’I’,’N’,’A’}; B) char s[5] ={“CHINA”};

C) char s[]=”CHINA”;

D) char s[5]; s[0]=’C’; s[1]=’H’; s[2]=’I’; s[3]=’N’; s[4]=’A’;

31、下面程序段的输出结果是______。

char s[]=”\\\101abc\0”;

printf(“%s\n”,s);

A) \Aabc\0 B)\101abc\0 C) \101abc D) \Aabc

32、有如下程序:

main()

{int a[6],i,s=0;

for(i=1;i<6;i++) {a[i]=i+1; s+=a[i];}

printf(“%d\n”,s);

}

该程序的输出结果是_____________。

A) 18 B) 19 C) 20 D) 21

33、当调用函数时,实参是一个数组名,则向函数传送的是_________

A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D)数组每个元素中的值

34、C语言中,如果在定义函数时没有指定函数类型,系统会隐含指定为_______

A) char B) int C) Register D) static

35、一个源文件中定义的全局变量的作用域是___________

A) 本函数的全部范围B) 本程序的全部范围 C) 本文件的全部范围 D) 从定义开始至文件

结束

36、对于类型相同的两个指针变量之间,不能进行的运算是_____________

A) < B) = C) + D) -

37、已知 int s[]={1,3,5,7,9} , *p=&s[0]; ,则值为5的表达式是_______________。

A) *p+2 B) *p+3 C) *(p+2) D) *(p+3)

38、若有如下语句:

int c[4][5], (*p)[5];

p=c;

则能正确引用c数组元素的是_____________

A) p+1 B) *(*p+2) C) *(p+3) D) *(p+1) +3

39、有如下定义:

struct person

{char name[9] ; int age;};

struct person class[10]={“john”,17,”Paul”,19,”Mary”,18,”Adam”,16};

根据上述定义,能输出字母M的语句是________________

A) printf(“%c\n”,class[3].name); B) printf(“%c\n”,

class[3].name[1]);

C) printf(“%c\n”,class[2].name[1]);

D)printf(“%c\n”,class[2].name[0]);

40、设int b=8 ; ,表达式(b>>2)/(b>>1)的值是______________

A) 0 B) 2 C) 4 D) 8

二、填空题(每空2分,共20分)

1.在Turbo C 2.0编辑环境中,激活主菜单的热键是_________。

2.已知 int a=7;float x=3.5,y=4.8;则表达式x+a%2*(int)(x+y)的值是______。

3.设有 int x,y; scanf(“%d%*d%d”,&x,&y);,从键盘输入数据10 20 30 <回车>后,y

的值是______。

4.已知char s1[10]=”ABCD”,s2[5]=”xy”;则strlen(strcpy(s1,s2))的值是___

____。

5.有函数调用语句fun(a,b+c,(d,e));,则该函数调用语句中含有的实参的个数是___

_。

6.以下程序运行的结果是________。

main()

{char a[]=”12345”,*p;

int s=0;

for (p=a;*p!=’\0’; p++)

s=10*s+*p-’0’;

printf(“%d\n”,s);

}

7.执行程序段char str[]=”abc\0def\0ghi”; char *p; p=str; printf(“%s”,p+5);,

运行结果是__。

8.struct person

{char name[8];

long num;

union{float x; int y; } m;

} w;

则表达式sizeof(w)的值是_____。

9.判断文件指针是否指向文件尾的函数为_______。

10.#define S(x) 5*x

main()

{int a=1,b=2;

printf(“%d”,S(a+b));

}

运行结果是_________。

三、阅读理解题(每小题4分,共20分)

1.下面程序运行的结果是______。

main()

{ int i,j,s=0;

for(i=1;i<=4;i++)

for(j=1;j<=5-i; j++)

s=s+i*j;

printf(“%d”,s);

}

2.下面程序运行的结果是_______。

main()

{int i,a=3,b=4,t;

for(i=1;i<=5;i++)

switch(i%5)

{case 0: b=3;

case 1: t=a;a=b;b=t; break;

default: b=5;

}

printf(“%d,%d\n”,a,b);

}

3.下面程序运行的结果是__________。

main()

{int a[10],i,s=0;

a[0]=1;a[1]=2;

for(i=2;i<10;i++)

{ a[i]=a[i-1]+a[i-2];

s=s+a[i];

}

printf(“%d\n”,s);

}

4.下面程序运行的结果是___________。

main()

{int i,s=0;

for(i=1;i<=5;i++)

{static int x=0;

x=x+i;

s=s+x;

}

printf(“%d\n”,s);

}

5.下面程序运行的结果是_________。

int f(int n)

{if(n= =2) return 1;

else return f(n-2)+n;

}

main()

{ printf(“%d\n”,f(10));

}

四、编程题(20分)

1.(6分)设计程序计算并输出s=1+1/3+1/5+…….+1/99.

2.(7分)设计程序输出下面图形(要求用嵌套循环语句实现)。

55555

4444

333

22

1

3.(7分)设计程序输入一个字符串并判断其是否是“顺序串”(从小到大或从大到小排,如:AABCCD或dccBAA),“是”则打印“Yes”,“否”则打印“No”。

#inclued

#include

main()

{

char s[100];

…..

}

计算机水平考试模拟试卷2(二级C)

2008年十二月

一、单项选择题(每题1分,共40分)

1、计算机能直接执行由_______编写的源程序。

A)机器语言 B)汇编语言 C)C语言 D)FORTRAN语言2、在计算机内存中,每个存储单元都有一个唯一编号,该编号被称为_____。

A)标号 B)记录号 C)容量 D)地址

3、将十进制数93转换成八进制数为______。

A)(107)

8 B)(127)

8

C)(135)

8

D)(140)

8

4、Cache(高速缓存)能提高计算机的运行速度,主要原因是_______。

A)它扩展了内存的容量B)它缩短了CPU的存取时间

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、计算机操作系统的主要功能是_______。

A)进行网络连接 B)管理计算机资源,方便用户使用

C)实现数据共享 D)把高级语言的源程序代码转换为目标代码11、下列关于C语言程序书写规则说法中正确的是_______。

A)不区分大小写字母 B)一行只能写一条语句

C)一条语句可分成几行书写 D)每行必须有行号

12、以下不能作为C语言常量的是______。

A)0582 B)2.5e-2 C)3e2 D)0xA5

13、以下不符合标识符规定的是_______。

A)_sum B)sum C)3cd D)Void

14、下列可以正确表示字符常量的是_______。

A)”t” B)’\t’ C)”\t” D)t

15、在C语言中,要求操作数不能是实型的运算符是_______。

A)%= B)/= C)!= D)++

16、设有int a=1,b=2,c=1;,则表达式a?a+b:a+c的值是______。

A)0 B)1 C)2 D)3

17、设有int a=2,b=6;,则表达式a*b/5的值是______。

A)2 B)3 C)2.4 D)3.6

18、已知int i;float f;,则以下正确的语句是______。

A)(int f)%i; B)int(f)%i; C)int (f%i) ; D)(int)f%i

19、设变量x,y,均为int 类型,则下面程序段的输出结果是_______。

x=6;

y=x++;

++y;

printf(“%d”,y);

A)9 B)8 C)7 D)6

20、已知int a=6,b=8,c=3;,则逻辑表达式a>b&&++c运算后,c的值是______。

A)1 B)2 C)3 D)4

21、已知int x=2,y=-1,z=3;,执行下面语句后,z的值是_______。

If(x

A)1 B)2 C)3 D)4

22、下面程序运行结果为______。

#include

void main( )

{

int a=1;

if (!a)

printf(“YES”);

else

printf(“NO”);

}

A)NO B)YES C)YESNO D)提示运行错误

23、有以下程序段:

int a,b,c;

a=1;b=2;c=3;

if(a>b) c=a;b=c;

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

程序运行结果为_______。

A)a=1,b=3,c=3 B)a=1,b=3,c=2 C)a=1,b=2,c=3 D)a=2,b=1,c=1 24、for(表达式1;;表达式3)可理解为______。

A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)25、执行语句for(i=1;i<6;i+=2);后,变量i的值是______。

A)5 B)6 C)7 D)8

26、有如下程序:

#include

void main( )

{

int s=1,i;

for(i=1;i<=5;i++)

s=s*i;

printf(“%d\n”,s);

}

A)6 B)120 C)240 D)2

27、运行下面程序:

#include

#include

void main( )

{ char p[]=”12345\0QQ\0”;

printf(“%d\n”,strlen(p));

}

输出结果为________。

A)8 B)7 C)6 D)5

28、以下能正确定义一维数组的选项是_______。

A)int num[ ]; B)#define N 100 C)int num[0..100]; D)int N=100;

int num[N]; int

num[N];

29、下列能正确对字符串s进行初始化操作的是______。

A)char s[5]={‘C’,’H’,’I’,’N’,’A’,’\0’};

B)char s[5]={“CHINA”};

C)char s[ ]=”CHINA”;

D)char s[5];s[0]=’C’;s[1]=’H’; s[2]=’I’;s[3]=’N’; s[4]=’A’;s[5]=’\0’;

30、若有int a[3][4];,则对a数组元素非法引用的是_______。

A)a[0][2+1] B)a[0][4] C)*(*(a+2)+3) D)a[1][2] 31、当调用函数时,若实参是一个数组名,则向函数传送的是______。

A)数组的长度B)数组的首地址

C)数组每一个元素的地址D)数组每个元素中的值

32、C语言中,如果在定义函数时没有指定函数的类型,系统会隐含指定______型。

A)int B)char C)float D)static 33、一个源文件中定义的全局变量的作用域是_____。

A)本函数的全部范围B)本程序的全部范围

C)本文件的全部范围D)从定义开始至本文件结束

34、设有以下函数首部:

int func (double x[10],int n)

如果在程序中需要对该函数进行声明,则以下选项中错误的是______。

A)int func(double x[],int n);B)int func( double ,int);

C)int func(double x[10],int n);D)int func(double *x,int n);35、类型相同的两个指针变量之间不能进行的运算是_______。

A)+ B)= C)< D)-

36、若有int m=5,n,*p1=&m,*p2=&n;,能将5赋值给n的是______。

A)p2=*p1; B)*p1=*p2; C)p2=p1; D)*p2=*p1;

37、设有int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则p[6]的值是_______。

A)5 B)6 C)7 D)8

38、设有:

struct student

{ char name[10];

int age;

char sex;

}std={“Li Ming”,19,’M’},*p;

p=&std;

则下面各输出语句中错误的是______。

A)printf(“%d”,(*p).age); B)printf(“%d”,p->age);

B)printf(“%d”,stu.age); D)printf(“%d”,p.age);

39、已知int x=28;,则执行语句printf(“%d\n”,x<<1);后的结果为_______。

A)34 B)14 C)70 D)56 40、以读写方式打开一个已存在的文本文件file1.txt,以下选项正确的是________。

A)FILE *fp;fp=fopen(“file1.txt”,”r+”);

B)FILE *fp;fp=fopen(“file1.txt”,”w”);

C)FILE *fp;fp=fopen(“file1.txt”,”r”);

D)FILE *fp;fp=fopen(“file1.txt”,”rb+”);

二、填空题(每空2分,共20分)

1、在C语言中整型常数可用十进制、八进制和___________进制三种数制表示。

2、已知int i,a;,执行语句i=(a=6,a*3),a+5;后,变量i的值是_______。

3、已知int x=20;,执行语句x=x+6.28;后,变量x的数据类型是________。

4、若有int i;,则执行语句i=4>3>2;后,i的值为________。

5、以下程序段的功能为:从键盘上输入一个正整数n并判断其是否为素数,请填空。

int n,i;

printf(“请输入一个正整数n:\n”);

scanf(“%d”,&n);

for((i=2;i<=n-1;i++)

if(n%i==0) break;

if(i_________n)

printf(“%d是素数\n”,n);

else

printf(“%d不是素数\n”,n);

6、已知int k=8;,则下面while循环执行的次数为____________。

while(k==2) k=k-1;

7、下列程序执行后的输出结果为________。

#include

#define M(x) x*(x+1)

void main( )

{

int a=2,b=3;

printf(“%d”,M(a+b));

}

8、在C标准库函数中,常用的字符串连接函数是________。

9、若有如下定义,则变量w在内存中所占的字节数是_______。

union aa{float x;char c[2];};

struct st{ union aa v;float y;double z;}w;

10、若fp是指向某二进制文件的指针,且未指到文件末尾,则!feof(fp)的值是_______。

三、阅读理解题(每小题4分,共20分)

1、以下程序的运行结果为_____________________。

#include

int main( )

{ char c=’A’;

int a=65;

float f=3.14159;

printf(“%d,%c\n”,c,c);

printf(“%d,%c\n”,a,a);

printf(“%f,%.4f\n”,f,f);

return 0;

}

2、以下程序的运行结果为_____________________。

#include

int main( )

{ int i,s=0;

for(i=1;i<=10;i++)

switch(i%5)

{

case 1:

case 2:s++;break;

case 3:

case 4:s--;break;

default:s++;

}

printf(“%d\n”,s);

return 0;

}

3、以下程序的运行结果为_____________________。

#include

int main( )

{ int a[2][5],i;

for(i=0;i<5;i++)

{

a[0][i]=i*2;

a[1][i]=i+2;

}

printf(“%d\n”,a[0][1]*a[1][3]);

return 0;

}

4、以下程序的运行结果为_____________________。

#include

int fun(int n)

{ static int x=1;

int y;

x=x+n;

y=x+n;

return(x+y);

}

int main( )

{ int s;

s=fun(1);

printf(“%d\n”,s);

s=fun(s);

printf(“%d\n”,s);

return 0;

}

5、以下程序的运行结果为_____________________。

#include

int f (int n)

{ if(n==0)

return 0;

else

return n+f(n+1);

}

int main( )

{

printf(“%d\n”,f(-5));

return 0;

}

四、编程题(共20分)

1、编写程序计算并输出下面式子的值(要求用循环语句实现)。(7分)

5+10+15+……+490+495+500

2、编写程序输出下面图形(要求用嵌套的循环语句实现)。(7分)

1

21

321

4321

54321

3、编写程序将字符串中所有小写字母转换为大写字母,并统计其中字母的个数。要求输出

转换后的字符串和字母个数。(6分)

运行结果如下:

HELLO 2009,WE ARE READY.

N=15

程序框架如下:

#include

int main( )

{ char s[100]= “Hello 2009,We are ready.”; int n=0;

/*考生在此完善程序*/

……

return 0;

}

计算机水平考试模拟试卷2(二级C)

2009年六月

一、单项选择题(第题1分,共40分)

1.在计算机领域中,MIPS通常用来描述计算机的_______

A)运算速度B)内容容量C)分辨率D)主频

2.下面属于计算机输出设备的是___________

A)显示器B)鼠标C)键盘D)扫描仪

3.微型计算机在工作中突然断电,则_______中的信息全部丢失。

A)硬盘B)RAM C)ROM D)光盘

4.若X是二进制数1011,Y是十进制数13,Z是十六进制数1D,则X、Y、Z从大到小的顺序是_______。

A)ZYX B)YZX C)XYZ D)ZXY

5.在Windows中,下面关于删除文件的描述错误的是_______。

A)U盘上的文件被删除后,不能从回收站中还原

B)可以不经过回收站直接将文件删除

C)可以将文件先复制到回收站,需要时再将其从回收站还原

D)利用“清空回收站”选项可以把回收站中的文件全部删除

6.下面关于E-mail功能的描述中,错误的是_______。

A)在发送电子邮件时,可以同时发送给多人

B)在发送电子邮件时,可以发送附件

C)在接收电子邮件时,可以将附件下载到本地计算机上

D)在接收电子邮件时,必须将附件下载到本地计算机上

7.为减少多媒体数据所占存储空间,常采用_______技术。

A)高速缓冲B)数据压缩C)多通道D)流媒体8.https://www.sodocs.net/doc/0d2335600.html,中的“http”指的是_______。

A)计算机主机域名B)文件传输协议C)超文本传输协议D)TCP/IP协议9.下面关于计算机病毒的描述中,正确的是_______。

A)计算机病毒不能感染安装了杀毒软件的计算机系统

B)计算机病毒只能通过网络传播

C)计算机病毒不能感染加密或压缩后的文件

D)计算机病毒可以通过U盘进行传播

10.下面系统软件中,最核心的是_______。

A)编译系统B)语言处理系统C)操作系统D)数据库管理系统11.下列定义变量的语句中错误的是_______。

A)int _abc; B)double int_; C)char For; D)float US$; 12.设有int x=3,y=4;,以下不合法的C语言语句是_______。

A)x=y= =5; B)x=y&2.8; C)x=y=5; D)x+=x+2;

13.下列可以正确表示字符常量的是_______。

A)?\x41?B)\008 C)a D)”a”

14.设有定义:int k=0;,以下值为0的表达式是_______。

A)k-1 B)k-=1 C)k-- D)--k

15.下列常数中不能作为C语言常量的是_______。

A)0xA5 B)2.5e-2 C)3e2 D)0582

16.设有float f1=2.6,f2=2.5;,则表达式(int)f1+f2的值为_______。

A)5 B)4.5 C)4 D)5.5 17.设变量x,y,z均为int 类型,则以下程序段的输出结果是_______。

x=y=6;

z=x,++y;

printf(“%d”,x)

A)9 B)8 C)7 D)6

18.设有int a=2,b=1,c=3,d=4;,则表达式a>b?a+b:c+d值为_______。

A)1 B)2 C)3 D)7

19.设有int a=52,b=6,c=2;,则表达式a

A)0 B)1 C)2 D)3

20.若变量c为char类型,以下不能正确判断其为大写字母的表达式是_______。

A)?A?<=c<=?Z?B)c>=?A?&&c<=?Z?

C)(c+32)>=?a?&&(c+32)<=?z?D)!(c?Z?)

21.若从键盘上输入88<回车>后,以下程序的输出结果是_______。

#include “stdio.h>

void main( )

{ int a;

scanf(“%d”,&a);

if(a>90) printf(“%d”,a);

if(a>80) printf(“%d”,a);

if(a>70) printf(“%d”,a);

}

A)888888 B)8888 C)88 D)8

22.以下程序段的输出结果是_______。

int a=2,b=1,c=2;

if(a

printf(“%d\n”,c);

A)0 B)1 C)2 D)3

23.语句while(!w);中的表达式!w等价于_______。

A)w= =1 B)w= =0 C)w!=1 D)w!=0 24.以下程序段的输出结果是_______。

int a=1,b=2,c=3,t;

while(b

{

t=a;a=b;b=t;

c--;

}

Printf(“%d,%d,%d”,a,b,c);

A)1,2,3 B)2,1,2 C)1,2,1 D)2,1,1 25.以下能正确定义和初始化一维数组a的选项是_______。

A)int a[5]={0,1,2,3,4,5}; B)int a[]=”01234”;

C)int a[5]=(…A?,?B?,?C?); D)int a[]={1,2,3,4,5};

26.函数strlen(“1234\0ab\0c”的返回值是_______。

A)4 B)5 C)8 D)9

27.若有说明:int a[4][5];,则对数组a的元素的非法引用是_______。

A)a[0][2*2] B)*(*(a+1)+2) C)a[4-2][0] D)a[0][5]

28.判断字符串s1是否大于字符串s2,正确的表达式是_______。

A)s1>s2 B)strcat(s1,s2) C)strcpy(s1,s2) D)strcmp(s1,s2)>0 29.在C语言中,函数返回值的类型取决于_______。

A)函数定义中函数首部所说明的类型

B)在return语句中表达式值的类型

C)调用函数时主调用函数所传递的实参的类型

D)函数定义中形参的类型

30.若从键盘上输入3,4<回车>后,则以下程序的输出结果是_______。

#include “stdio.h”

void swap(int x,int y)

{ int t;

t=x;x=y;y=t;

printf(“%d,%d”,x,y);

}

void main( )

{ int a,b;

scanf(“%d,%d”,&a,&b);

swap(a,b);

printf(“%d,%d”,a,b);

}

A)3,4,3,4 B)4,3,3,4 C)4,3,4,3 D)3,4,4,3 31.一个源文件中定义的全局变量的作用域是_______。

A)本函数的全部范围B)从定义开始至本文件结束

C)本文件的全部范围D)本程序的全部范围

32.下列关于C语言函数的说法中正确的是_______。

A)函数可嵌套定义B)函数不可以嵌套调用

C)函数可以嵌套调用,但不能递归调用D)函数嵌套调用和递归调用均可以33.有如下程序段

int a=10,b=2,*p;

p=&a;a=*p+b;

执行该程序段后,a的值为_______。

A)12 B)11 C)10 D)编译出错34.设有int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;,则p[5]的值是_______。

A)5 B)6 C)7 D)8

35.运行程序:

#include “stdio.h”

void func(int x,int *y)

{ x=x+1;*y=*y+1;}

void main( )

{ int a=10,b=20;

fun(a,&b);

printf(“%d,%d\n”,a,b);

}

输出结果是_______。

A)10,20 B)11,21 C)10,21 D)11,20

36.若有定义char str[ ]=”uvwxyz”,*p=str;,则执行语句printf(“%c\n”,*(p+3));后的输出结果是_______。

A)x B)xyz

C)元素str[3]的地址D)字符x的地址

37.以下程序的输出结果是_______。

#define MUL(x) x*x

#include “stdio.h”

void main( )

{ int a=4,b=2;

printf(“%d\n”,MUL(a)/MUL(b));

}

A)4 B)8 C)16 D)32

38.以下类型说明和变量定义中正确的是_______。

A)typedef struct B)str REC;

{ int n;char c;}REC; {int n;char c;};

REC t1,t2; REC t1,t2;

C)typedef struct REC;B)str{int n;char c;} REC;

{ int n=0;char c=‘A’;} t1,t2; REC t1,t2;

39.已知int x=56;,则执行语句printf(“%d\n”,x>>2);后的输出结果为_______。

A)34 B)14 了C)224 D)56

40.若要用fopen( )_函数以读写方式打开一个已存在的二进制文件,则打开方式是_______。

A)“a”B)“wb+”C)“ab”D)“rb+”

二、填空题(每空2分,共20分)

1.已知char c=?A?;,则执行语句printf(“%d”,c);后输出结果为(1)。

2.已知double x=56.78;,则执行语句printf(“%1.1f\n”,x);后输出结果为(2)。

3.已知int a=2,b=3;,则执行语句a*=b+4;后输出结果为(3)。

4.已知double x=1,y?;,则表达式y;后输出结果为=x+3/2的值为(4)。

5.数学表达式1≤x≤3的C语言表达式为(5)。

6.已知int k=-5;,则下面while循环执行的次数是(6)。

while (k<=0) k=k+1;

7.以下程序段的输出结果为(7)。

char s[ ]=”Hello,World!”

s[5]=?\0?;

printf(“%s”,s);

8.若有定义:union {long x[2];char y[6];}m;,则执行语句printf(“%d\n”,sizeof(m));后的

输出结果为(8)。

9.在C语言中,若需调用数学库函数对数据进行处理,则需包含头文件(9)。

10.已知文件指针fp指向某文件的末尾,则!feof(fp)的值是(10)。

三、阅读理解题(每题4分,共20分)

1.以下程序的运行结果为________________。

#include

void main( )

{ int i,a=0,b=0,c=0;

for(i=1;i<5;i++)

switch(i)

{ case 1:a++;

case 2:b++;

case 3:a++;b++;break;

default: c++;

}

printf(“a=%d,b=%d,c=%d\n”,a,b,c);

}

2.以下程序的运行结果为________________。

#include

void main( )

{ int s=0,x=5639;

while(x>0)

{ s=s+x%10;

x=x/10;

}

printf(“%d\n”,s);

}

3.以下程序的运行结果为________________。

#include

void main( )

{ char s[]=”PROGRAM”;

int i,j=0;

for(i=1;s[i]!=?\0?;i++)

if(s[j]>s[i]) j=i;

printf(“%c\n”,s[j]);

}

4.以下程序的运行结果为________________。

#include

int fun1(int x)

{ static int s=1;

s=s*x;

return(s);

}

void main( )

{ int i;

for(i=1;i<=4;i++)

printf(“%d\n”,fun1(i));

}

5.以下程序的运行结果为________________。

#include

int fun2(int n)

{ if(n==1)

return(1);

else

return(n+fun2(n-1));

}

void main( )

{

printf(“%d\n”,fun2(5));

}

四、编程题(共20分)

1.(6分)设计程序计算并输出2009~9002之间所有29或92的倍数的和。(要求用循环语句实现)

2.(7分)设计程序输出下面图形(要求用循环语句实现)。

9

09

009

2009

3.(7分)设计一个转换函数,将字符数组中的字母变换为其字母表顺序后的字母,如果是‘Z’或‘z’,则分别变成‘A’或?a?,非字母字符不变,即:

…a?—>?b?,?b?—>?c?, ?c?—>?d?, ……?y?—>?z’?z?—>?a?

…A?—>?B?,?B?—>?C?, ?C?—>?D?, ……?Y?—>?Z’?Z?—>?A?

函数框架如下:

void Change( char s[ ] )

{

……

例如:

对于字符数组:char a[ ]=”t&W”,b[ ]=”w&Z”;

转换后的结果分别为:u&X和x&A。

请完成……处的程序代码。

模拟题一答案

二、选择题(40分)

1-5 CBACD 6-10 BDCAA 11-15 CBBDC 16-20 ABDBC 21-25 CDBDC 26-30 ABCCB 31-35DCBBD 36-40 CCBCA

三、填空题(每空2分,共20分)

1.F10 2.11.5 3.30 4.2 5.3 6.12345 7.ef 8.16 9.feof(fp) 10.7

四、阅读理解题

1.35 2.3,4 3.228 4.35 5.29

五、编程题

1.#include

void main( )

{ int i;

float s=0;

for(i=1;i<=99;i=i+2)

{ s=s+1.0/i;

}

printf(“%10.2f”s);

}

2.#include

void main( )

{ int i,j,k;

for(i=5;i>=1;i--)

{ for(j=1;j<=i;j++)

printf(““);

for(k=1;k<=i;k++)

printf(“%d”,i);

printf(“\n”);

}

}

3.#include

#include

main()

{ char s[100];

int i;

gets(s); i=1;

while(s[i]!=?\0?)

{ if(s[i]

i=i+1;}

if(s[i]= =?\0?) printf(“yes”);

else printf(“no”);

嵌入式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语言期末考试题(含答案)

《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0

8、有以下程序: #include voidmain(){ inti=1,j=1,k=2; if((j++||k++)&&i++) printf(“%d,%d,%d\n”,i,j,k);} 执行后的输出结果是() A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3 9、有以下程序: #include voidmain(){ inti,s=0; for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);} 程序执行后的输出结果是() A)自然数1~9的累加和B)自然数1~10的累加和 C)自然数1~9中奇数之和D)自然数1~10中偶数之和 10、有以下函数定义: voidfun(intn,doublex){……} 若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(inty,doublem); B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 二、填空题(10x2’=20’) 11、C语言描述“x和y都大于或等于z”的表达式是:。 12、函数定义时涉及的基本要素是:、、。

C语言考试题库及答案复习整理

C 语言理论上机考试选择题部分(共200题) 1、下面程序的输出是___D______ #include void main() { int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k); } A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b 2、在下列选项中,不正确的赋值语句是__D______. A) ++t; B) n1=(n2=(n3=0)); C) k=i=j; D) a=b+c=1; 3、下面合法的C 语言字符常量是______A____. A) '\t' B) "A" C) 65 D) A 4、表达式: 10!=9的值是 ________D____. A) true B) 非零值 C) 0 D) 1 5、C 语言提供的合法的数据类型关键字是_____B____. A) Double B) short C) integer D) Char 6、字符(char)型数据在微机内存中的存储形式是__D__. A) 反码 B) 补码 C) EBCDIC 码 D) ASCII 码 7、C 语言程序的基本单位是_____C______. A) 程序行 B) 语句 C) 函数 D) 字符 8、设 int a=12,则执行完语句

a+=a-=a*a 后,a 的值是____D____ A) 552 B) 264 C) 144 D) -264 9、执行下面程序中的输出语句后,输出结果是____B__. #include void main() {int a; printf("%d\n",(a=3*5,a*4,a+5)); } A) 65 B) 20 C) 15 D) 10 10、下面程序的输出是____B______. #include void main() {int x=023; printf("%d\n",--x); } A) 17 B) 18 C) 23 D) 24 11、下面程序的输出的是_____C____. #include void main() {int x=10,y=3; printf("%d\n",y=x/y); } A) 0 B) 1 C) 3 D) 不确定的值 12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是______A_____. #include void main() {char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2); } A) 67,D B) B,C C) C,D D) 不确定的值 13、若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为____D__. A) a<>0 B) !a C) a=0 D) 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语言是一门通用计算机编程语言,应用广泛。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语言笔试题带答案6doc

2014-06-13 06:30:01 阅读( 135 ) 标签: 一、选择题(1)~(10)每小题2分,(11)~(50)每小题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)在数据结构中,从逻辑上可以把数据结构分为_______。 A)动态结构和静态结构 B)紧凑结构和非紧凑结构 C)线性结构和非线性结构D)内部结构和外部结构 答案:C 评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。 (2)若进栈序列为l,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_______。 A)1,4,3,2 B)2,3,4,l C)3,1,4,2 D)3,4, 2,1

答案:C 评析:栈是一种后进先出表,选项c中,先出栈的是3,说明此时栈内必然有1,2,由于l 先于2进栈,所以l不可能在2之前出栈,故选项C这种出栈序列是不可能的。 (3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_______。 A)希尔排序B)冒泡排序C)插入排序D)选择排序 答案:A 评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。 (4)在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为_______。 A)2 B)3 C)4 D)5 答案:C

评析:二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与ll比较的关键码分别为15,8,10,12四个。 (5)对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为_______。 A)n-1 B)n C)n+l D)2n 答案:C 评析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。 (6)在软件开发过程中,软件结构设计是描述_______。 A)数据存储结构 B)软件体系结构C)软件结构测试D)软件控制过程 答案:B

大学c语言考试题库含答案

================================================== 题号:1482 执行以下程序段后,输出结果和a的值是()。int a=10; printf("%d",a++); A、11 和10 B、11 和11 C、10 和11 D、10 和10 答案: C 题号:2100 已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是 A、65,66 B、A,B C、65,68 D、A,68 答案: A 题号:5055 相同结构体类型的变量之间,可以()。 A、比较大小 B、地址相同 C、赋值 D、相加 答案: C 题号:3217 int a[10];合法的数组元素的最小下标值为()。 A、1 B、0 C、10 D、9 答案: B

能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是 A、a>=0 | a<=10 B、a>=10 or a<=0 C、a>=10 && a<=0 D、a>=10 || a<=0 答案: D 题号:157 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",a,b); }该程序的输出结果是( ) A、2,2 B、2,1 C、1,1 D、1,0 答案: B 题号:4784 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为()。 A、不确定 B、double C、int D、float 答案: B 题号:1647 以下程序中,while循环的循环次数是______ main() { int i=0;

C语言笔试题带答案

一、选择题(1)~(10)每小题2分,? (11)~(50)每小题1分,共60分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。 (1)在数据结构中,从逻辑上可以把数据结构分为_______。 A)动态结构和静态结构??? ??B)紧凑结构和非紧凑结构 C)线性结构和非线性结构??? D)内部结构和外部结构 答案:C 评析:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系。 (2)若进栈序列为l,2,3,4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_______。 A)1,4,3,2??? B)2,3,4,l C)3,1,4,2 ???D)3,4, 2,1 答案:C 评析:栈是一种后进先出表,选项c中,先出栈的是3,说明此时栈内必然有1,2,由于l先于2进栈,所以l不可能在2之前出栈,故选项C这种出栈序列是不可能的。 (3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_______。 A)希尔排序??? B)冒泡排序??? C)插入排序??? D)选择排序 答案:A 评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。 (4)在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为_______。 A)2??? ??B)3?????? C)4 ???????D)5 答案:C

评析:二分法查找是用关键码与线性表的中间元素比较,然后根据比较结果来判断是结束查找,还是在左边或者右边子表按相同的方法继续查找。本题中,与 ll比较的关键码分别为15,8,10,12四个。 (5)对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为_______。 A)n-1??? B)n??? C)n+l ?????D)2n 答案:C 评析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。 (6)在软件开发过程中,软件结构设计是描述_______。 A)数据存储结构?? ??B)软件体系结构??? C)软件结构测试??? D)软件控制过程 答案:B 评析:从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。 (7)模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚??? 的一类是_______。 A)顺序性内聚? ???B)过程性内聚? ????C)逻辑性内聚??? D)功能性内聚 答案:D 评析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和功能内聚。 (8)数据存储和数据流都是_______,仅仅是所处的状态不同。 A)分析结果??? B)事件??? C)动作??? D)数据 答案:D 评析:数据流图有4种成分:源点或终点、处理、数据存储和数据流。数据存储是处于静止状态的数据,数据流是处于运动中的数据。 (9)数据的完整性是指数据的正确性、有效性和_______。 A)可维护性??? B)独立性??? C)安全性??? D)相容性

c语言常见笔试题总结

c语言常见笔试题总结 此句出自北宋诗人林逋的七律《山园小梅》,原诗为“众芳摇落独暄妍,占尽风情向小园。疏影横斜水清浅,暗香浮动月黄昏。霜禽欲下先偷眼,粉蝶如知合断魂。幸有微吟可相狎,不须檀板共金尊。” 【1 使用宏】 1.1 #ifdef NDEBUG now i will introduce myself briefly. i am 21 years old. i was born in heilongjiang province, northeast of china. i am a senior student at beijing xx university. my major is packaging engineering. and i will receive my bachelor degree after my graduation in june. in the past 4 years, i spend most of my time on study. i have passed cet4/6 with an ease. and i have acquired basic knowledge of packaging and publishing both in theory and in practice. besides, i have attended several packaging exhibition held in beijing. this is our advantage study here. moreover, i have taken a tour to some big factory and company. through these i have a deeply understanding of domestic packaging industry. 勤思考研解析:此题考查了初中生出现反抗心理的原因,有三个:自我意识高涨;独立意识增强;中枢神经系统的兴奋性过强,因此答案是C。 #define TRACE(S) S #else #define TRACE(S) printf(“%s;\n”, #S); S #endif 问:以上TRACE()宏的作用是什么? 1.2 #error的作用? 1.3 定义一个宏,求出给定数组中的元素的个数 人员绩效考评的成对比较法中,管理者只有在对每个员工与其他所有员工进行成对比较之后,才能得出对其业绩的总的评价结果。如某部门有五名员工,用该方法所需的总的成对比较次数为

c语言笔试题答案优选稿

c语言笔试题答案 集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

笔试题 一、填空题(每个空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

嵌入式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语言考试题及答案

最新大学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)。 [i] 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# 语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A) B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言操作题常考编程题库完整

C语言编程题覆盖到的算法: 1、个人所得税计算; 2、求一组数的正、负数(或奇、偶数)的个数和平均值; 3、二维数组主、次对角线之和; 4、求素数(用函数实现); 5、级数有限项求和问题; 6、两个一维数组相加(用函数实现); 7、求最大、最小值; 8、判断闰年(用函数实现); 9、求水仙花数; 10、百钱百鸡; 11、求最大公约数、最小公倍数。 12、求回文数; 13、排序; 14、二维数组的转置; 15、递归函数求阶乘; 16、求斐波那契数列; 17、求和:a+aa+aaa+aaaa+....; 18、求符合条件的整数(如:是某个二位数的平方,个位、十位、百位数各不相同等);(包括素数,回文,完数,等等) 19、字符串加密; 20、统计字符串中字母和数字的个数;

/*1.个人所得税计算,以实验指导P24T5为标准*/ #include void main() { int i,n; double a,b,c; n=i/400; printf("please input income:\n"); scanf("%d",&i); a=(i-800)*0.05,b=20+(i-1200)*0.08,c=84+(i-2000)*0.2; switch(n) {

case 1:printf("不需缴税\n");break; case 2:printf("需交纳%lf元\n",a);break; case 3: case 4:printf("需交纳%lf元\n",b);break; default:printf("需交纳%lf元\n",c);break; } } /*2. 求一组数的奇数个数,偶数个数和平均值#include #define N 10 void main() { int a[N]; int i,m=0,n=0,sum=0; double average; printf("please input 10 numbers:\n"); for(i=0;i

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语言试题及答案

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. A B. B C. D D. E (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 32 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。 第2章数据类型运算符和表达式习题 1. 单项选择题 (1) 以下选项中,正确的 C 语言整型常量是 D 。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中, D 是不正确的 C 语言字符型常量。

C语言笔试题及参考答案-东软集团

C语言笔试题及参考答案-东软集团 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用":: " 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量? 答:extern 可以用引用头文件的方式,也可以用extern关键字,如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个变写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。 3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错 4、语句for( ;1 ;)有什么问题?它是什么意思? 答:和while(1)相同。 5、do……while和while……do有什么区别? 答:前一个循环一遍再判断,后一个判断以后再循环 6、请写出下列代码的输出内容 #include main() { int a,b,c,d; a=10; b=a++; c=++a; d=10*a++; printf( "b,c,d:%d,%d,%d ",b,c,d); return 0; } 答:10,12,120 7、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别? 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身

C语言面试题(经典全)

1.static有什么用途?(请至少说明两种) 1)限制变量的作用域 2)设置变量的存储域(堆,主动分配内存也是堆) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。 4.全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在栈 6.堆栈溢出一般是由什么原因导致的? 堆栈溢出一般是循环的递归调用导致的,如果使用的大数据结构的局部变量,也可能导致堆栈溢出。没有回收垃圾资源导致的是内存泄露最后内存耗尽。 20.不能做switch()的参数类型是: switch的参数不能为实型。(只能是int char) 9.写出float x 与“零值”比较的if语句。 if(x<0.000001&&x>-0.000001)

3.在c语言库函数中将一个字符转换成整型的函数是atol()吗,这个函数的原型是什么? 函数名: atol 功能: 把字符串转换成长整型数 函数的原型: long atol(const char *nptr); 程序例: #include #include int main(void) { long l; char *str = "98765432"; l = atol(lstr); printf("string = %s integer = %ld\n", str, l); return(0); } 1.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? c用宏定义,c++用inline

C语言期末考试试题及答案

C语言期末考试试题及答案 2003C语言试题2 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次 B循环是无限循环 C循环体语句一次也不执行 D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x

C语言经典面试题目集锦

1.前言 2.声明和初始化 2.1我如何决定使用那种整数类型? 2.264位机上的64位类型是什么样的? 2.3怎样定义和声明全局变量和函数最好? 2.4extern在函数声明中是什么意思? 2.5关键字auto到底有什么用途? 2.6我似乎不能成功定义一个链表。我试过typedef struct{char*item;NODEPTR next;}*NODEPTR;但是编译器报了错误信息。难道在C语言中一个结构不能包含指向自己的指针吗? 2.7怎样建立和理解非常复杂的声明?例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 2.8函数只定义了一次,调用了一次,但编译器提示非法重定义了。 2.9main()的正确定义是什么?void main()正确吗? 2.10对于没有初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为``零",它可否作为空指针或浮点零? 2.11代码int f(){char a[]="Hello,world!";}不能编译。 2.12这样的初始化有什么问题?char*p=malloc(10);编译器提示``非法初始式"云云。 2.13以下的初始化有什么区别?char a[]="string literal";char*p="string literal";当我向p[i]赋值的时候,我的程序崩溃了。 2.14我总算弄清除函数指针的声明方法了,但怎样才能初始化呢? 3.结构、联合和枚举 3.1声明struct x1{...};和typedef struct{...}x2;有什么不同? 3.2为什么struct x{...};x thestruct;不对? 3.3一个结构可以包含指向自己的指针吗? 3.4在C语言中实现抽象数据类型什么方法最好? 3.5在C中是否有模拟继承等面向对象程序设计特性的好方法? 3.6我遇到这样声明结构的代码:struct name{int namelen;char namestr[1];};然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素。这样合法和可移植吗? 3.7是否有自动比较结构的方法? 3.8如何向接受结构参数的函数传入常数值? 3.9怎样从/向数据文件读/写结构? 3.10我的编译器在结构中留下了空洞,这导致空间浪费而且无法与外部数据文件进行"二进制"读写。能否关掉填充,或者控制结构域的对齐方式? 3.11为什么sizeof返回的值大于结构的期望值,是不是尾部有填充? 3.12如何确定域在结构中的字节偏移? 3.13怎样在运行时用名字访问结构中的域? 3.14程序运行正确,但退出时却``core dump''了,怎么回事? 3.15可以初始化一个联合吗?

相关主题