西交大程序设计复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.用指针设计一个可以计算字符串长度的程序。