西交大程序设计复习题

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

程序设计基础-学习指南

一.填空题

1.计算机系统是由()、()两部分组成。

2.程序执行过程中其值保持不变的量称为()。它又可以分为()、()、()。

3.()语句的作用是从switch、for、while或do-while语句中跳出来,终止这些语句的执行,把控制转到被中断的循环语句或switch语句之后去执行。

4.标准字符串处理函数的头文件是()。

5.在C语言中,字符串实际上是指字符串第一个字符的(),所以字符串数组中的每一个元素实际上是每一个字符串的()。

6.putchar( )函数的函数功能是( )。7.Static char a[15]={‘H’,’a’,’p’,’p’,’y’,’.’};这个初始化语句中有9个数组元素没有给出初值,系统会自动对它们赋值为()或()。

8.由于指针变量直接指向变量,所以称为()。而如果通过指向指针的指针变量来访问变量则构成()。

二.选择题

1.下列哪个不是算法的特征()

A.有穷性B.可行性C.不确定性D.输入

2.设:x=9;y=++x;,则产生的结果是()

A.x=9;y=9; B.x=10;y=10; C.x=9;y=10; D.x=10;y=9;

3.下列说法错误的是()

A.for语句中,<表达式1> 、<表达式2>和<表达式3>都可以缺省。

B.<表达式2>缺省,系统会认为此处的值是0

C.for语句的三个表达式可以是任何类型的表达式

D.for语句可以嵌套使用

4.关于数组,下列说法正确的是()

A.对数组的初始化操作在定义数组的同时进行

B.给数组赋初值时,必须所有数组元素都被赋值

C.给数组元素全部赋初值时,一定要指明数组的大小。

D.引用数组元素的时候,可以一次引用数组中的全部元素

5.以下说法错误的是()

A.C程序必须从main( )函数开始执行

B.所有函数在定义上讲都是相互独立的,不存在嵌套定义

C.C语言中有两类函数,系统提供的库函数和用户自定义的函数

D.参数的作用是向函数传递不同的数据

6.对于如下的表达式:

int a[3][4],*p;

p=*a;

执行p++操作之后,*p表示取()的内容。

A.a[0][0] B.a[1][0] C.a[1][1] D.a[0][1]

7.以下函数,哪个不属于动态申请空间的标准库函数()

A.malloc( ) B.calloc( ) C.free( ) D.strcmp( )

8.执行下列两个语句后,输出的结果为()

char c1=66,c2=98;

printf(“%c,%d”,c1,c2);

A.66,98 B.66,b C.B ,97 D.B,98

9.以下程序的输出结果是( )

main()

{

int a=4,b=5,c=0,d;

d=!a&&!b||!c;

printf("%d\n",d);

}

A.1 B.0 C.非0的数D.-1

10.若int i=10;执行下列程序后,变量i的正确结果是( )

switch ( i )

{

case 0: i+=1;

case 10: i+=1;

case 11: i+=1;

default: i+=1;

}

A.10 B.11 C.12 D.13

11.以下说法错误的是()

A.int (*p)( ) ; 表示p被定义为一个指向返回值为整数的函数的指针

B.使用指向函数的指针是结构化程序设计的一种有效手段。

C.char **p相当于char *(*p)

D.指针数组的元素补仅能存放地址,还可以存放其他数组的元素。

12.关于链表的插入和删除,下列说法错误的是()

A.插入位置包括表头、表中和表尾

B.从链表中删除一个结点,就是把它从内存中抹掉。

C.要删除链表中的某个结点,需自己定义删除函数。

D.删除结点要注意删除的结点是否是头结点

13.以下不能定义为用户标识符的是()

A.scanf B.Void C._3com_ D.int

14.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是( ) A.p=2*(int*)malloc(sizeof(int));

B.p=(int*)malloc(2*sizeof(int));

C.p=(int*)malloc(2*2);

D.p=(int*)calloc(2,sizeof(int));

15.有如下程序, 该程序的输出的结果是( )

int addc(int a,int b,int c)

{

c=a+b;

return(c);

}

main()

{

int x=4,y=2,z,r;

z=x+y;

r=addc(addc(x,y,z),addc(y,z,x),z);

printf("%d\n",r);

}

A.36 B.12 C.14 D.6

三.程序填空题

1.求1+2!+3!+…+20!的和。

#include "stdio.h"

void main()

{

float n,s=0,t=1;

for( ①)

{

}

printf("1+2!+3!...+20!=%e\n",s);

getch();

}

2. 下面程序求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如

2+22+222+2222+22222….

#include "stdio.h"

void main()

{

int a ,n,count =1;

long int sn=0,tn=0;

printf("please input a and n\n");

scanf( ①);

printf("a=%d,n=%d\n",a,n);

while( ②)

{

tn=tn+a;

a=a*10;

}

printf("a+aa+...=%ld\n",sn);

getch();

}

四.程序设计题

1.编写一个程序,要求能够将输入的任意一个三位数颠倒过来。

2.用选择法对任意输入的一个10元整数数组排序(从小到大)。

3.用指针设计一个可以计算字符串长度的程序。

相关文档
最新文档