程序设计基础考题

选择题: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>缺省,系统会认为此处的值是0C. for语句的三个表达式可以是任何类型的表达式D. for语句可以嵌套使用4、关于数组下列说法正确的是()A.对数组的初始化操作在定义数组的同时进行B.给数组赋初值时,必须所有数组元素都被赋值C.给数组元素全部赋初值时,一定要指明数组的大小D.引用数组元素的时候,可以一次引用数组中的全部元素5、以下说法错误的是( )A.C程序必须从main()函数开始执行B.所有函数在定义上讲都是相互独立的,不存在嵌套定义C.C语言中有两类函数,系统提供的库函数和用户自定义的函数D.参数的作用是向函数传递不同的数据6、关于指针,下列说法错误的是()A.指针变量是用来存放内存地址的B.&表示取变量地址运算C.*表示取指针变量所指向的变量内容的运算D.可以将整数赋给指针变量7、关于结构体,下列说法错误的是()A.不能将一个结构体变量作为一个整体进行输入和输出B.对成员变量可以像普通变量一样进行各种运算C.结构体变量的地址主要用作函数参数传递结构体的地址D.结构体变量赋初值与数组不同,可以不一 一对应8、在已知int j,i=1;执行语句“j=j++;”后,变量i的值是()A.1 B.2 C.-1 D.-29、为了判断两个字符串s1和s2是否相等,应当使用()A.if(s1==s2) B.if(s1=s2) C.if(strcpy(s1,s2)) D.if(strcmp(s1,s2)==0)10、以下程序段的输出结果是()main(){ int i=0;while (i<10){if (i<1) continue;if (i==5) break;i++}……}A.1 B. 10 C. 6 D.死循环,不能确定次数10、()是用来描述对象的属性和行为的A.实体 B.类 C. 对象 D.现象11、下列说法不正确的是()A.++、- -只能用于变量 B.++、- -比负号运算符的优先级要高 C.++、- -的结合方向是:自右向左 D.++、- -常用于循环变量表达式中12、关于switch语句说法不正确的是()A.case的次序不影响执行结果 B.每个case语句后面的常量可以不同C.在执行完一个case语句后转到下一个case语句执行 D.每个case语句后面表达式只能是常量13、字符数组char a[ ]=”how do you do?”:的大小为()A.10 B.11 C.14 D.1514、关于形式参数,下面说法错误的是()A.对开形参,虽然定义了它,只有当函数被调用时,形参才在内存中开辟空间B. 调用结束后,形参自动从内在中被释放掉C.在函数定义中,可以不给出形参类型,调用的时候再定义D.实参与形参的关系是赋值与被赋值的关系16、以下说法错误的是()A int (*p)()表示p被定义为一个指向返回值为整数的函数的指针B.使用指向函数的指针是结构化程序设计的一种有效手段C.char**p相当于char*(*p)D.指针数组的元素补仅能存放地址,还可以存放其他数组的元素17、以下函数,哪个不属于动态申请空间的标准库函数()A.malloc() B.calloc() C.free() D.strcmp()18、执行下列两个语句后,输出的结果为()char c1=66,c2=98;printf(“%c,%d,”c1,c2);A.66,98 B. 66,b C. B,97 D. B,9819、以下程序的输出结果是()main(){int a=4,b=5,c=0,d;d=!a1&!b||!c;printf(“%d\n”,d);}A.1 B.0 C. 非0的数 D. -120、若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.1321、下列哪些是算法的描述方法()A.自然语言描述法 B.流程图描述法 C.伪代码描述法 D.N-S流程图描述法22、下列运算符优先级最高的是()A. && B. > C.++ D.!23、下面关于do-while语句说法正确的是()A. while语句和do-while语句肯定都要执行B.两者运行结果不同C.do-while在条件之前先执行循环体一次D.while语句至少执行一次24、有如下的数组static int a[10]:则()A.该数组没有被初始化 B.数组的所有元素都被赋值为0 C.数组的第一个元素是a[1] D.数组共有11个元素25、关于return语句,下面说法错误的是()A.它的功能是将表达式的值作为函数的返回值返回 B.函数中可以有多个return语句,执行到哪个就从那一个return语句返回 C.return可以返回多个值 D.return(表达式)语句中的表达式值的类型应与定义函数时函数的类型一致26、下列说法错误的是()A. int(*p)();表示p被定义为一个指向返回值为整数的函数的指针 B.使用指向函数的指针是结构化程序设计的一种有效手段 C.char**p相当于char*(*p) D.指针数组的元素不仅能存放地址,还可以存放其他数组的元素27、关于链表的插入和删除,下列说法错误的是()A. 插入位置包括表头,表中和表尾 B.从链表中删除一个结点,就是把它从内在中抺掉 C.要删除链表中的某个结点,需自己定义删除函数 D.删除结点要注意删除的结点是否是头结点28、以下不能定义为用户标识的是()A. scant B.void C._3com_ D.int29、若指针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*)malloc(2,sizeof(int));30、有如下程序,该程序的输出的结果是()int addc (int a,int b, int c){c=a+breturn(c)}main(){int x=4,y=2,z,r;z=x+y;r=addc(add(x,y,z), addc(y,z,x),z);printf(“%d\n”,r);}A. 36 B. 12 C.14 D.631、计算机系统是由硬件系统、软件系统两部份组成。
32、程序执行过程中其值保持不变的量称为常量它又可以分为整型常量、实型常量、字符型常量33、break语句的作用是从switch,for,while或do-while 语句中跳出来,终止这些语句的执行,把控制转到被中断的循环语句或switch语句之后去执行34、对于数组int a[5][6]的数组元素的引用最多到a[4][5]35、有如下的表达式: int a [20],*p; p=a那么p+3表示的是a[3] 的地址36、软件系统包括系统软件、应用软件两部分37、五种算术运算符分别是+、-、*、/、%38、若有语句:if (x
43、putchar()函数的函数功能是: 将给定的一个字符常量或字符变量的内容输出到显示器屏幕上44、static char a [15]={‘H’’,’’a’’,’’p’’,’’p’’,’’y’’,’’.’}:这个初始化语句中有9个数组元素没有给出初值,系统会自动对它们的赋值为0、或‘\0’45、由于指针变量直接指向变量,所以称为“单级间址”而如果通过指向指针的指针变量来访问变量则构成“二级间址”46、求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();}解. ①: n=1;n<=20;n++ ②: t*=n;③: s+=t;47、下面程序求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(1)printf(“a-%d,n=%d\n”,a,n);while(2){ tn=tn+a; 3 a=a*10; 4}printf(“a+aa+…=%ld\n”,sn);getch()}解: ①: "%d,%d",&a,&n ②: count<=n ③: sn=sn+tn; ④: ++count;48、下面程序用条件运算符的嵌套完成的:学习成绩>:90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
题……略解. ①: "%d",&score ②: grade=score>=90?'A':(score>=60?'B':'C');49、编写一个程序,要求能够将输入的任意一人三位数颠倒过来解:#include
答:int strlen(s)char *s;{ char *p=s; while(*p!='\0') p++; return(p-s);}52、打印出所有的“水仙花数”,所谓,“水仙花数”是指一个三位数,其各位数字立方和等于该数本身,例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方答:#include "stdio.h"main(){ int i,j,k,n; printf("water flower's number is:\n"); for(n=100;n<1000;n++) { i=n/100;//分解出百位 j=n/10%10;//分解出十位 k=n%10;//分解出个位 if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) { printf("%-5d",n); } } printf("\n");}53、将三个整数输入计算机,编写程序,将居中的值显示出来。
解: #include
答: #include