1、金陵科技学院校内二级复习题一、填空题C程序中有且仅有一个【1】函数.答案:主已知有声明float d=1;double f=1;long g;和语句printf(_,g=10+i+(int)d*f);,为了正确地以十进制形式输出printf参数表中第二个参数(表达式)的值,则在第一个参数中的下划线位置处应填写的格式转换说明符是【1】.答案:%ld在C语言中,字符型数据在内存中以【1】码形式存放.答案:ASCII以下程序输出的结果是【1】 . main() int a=5,b=4,c=3,d; d=(abc); printf(%dn,d); 答案:0设y为int型变量,请写出描述y为奇数的表达式
2、【1】。答案:y%2!=0以下十个运算符+ ! != , ?: & = | %中优先级别最高和最低的分别是【1】和【2】.答案:!,阅读以下程序: main() int x; scanf(%d,&x); if(x-bc) printf(%dn,d); else if(c-1=d)=1) printf(%dn,d+1); else printf(%dn,d+2); 执行后输出结果是 【1】。=(答案1)=3假定所有变量均已正确说明,下列程序段运行后x的值是【1】 a=b=c=0;x=35; if(!a)x-; else if(b); if(c)x=3; else x=4;=(答案1)=4有如下程
3、序main() float x=2.0,y;if(x10.0)y=1.0/x;else y=1.0;printf(%.2fn,y);该程序的输出结果是【1】.=(答案1)=1.00结构化程序中,有三种结构:顺序结构,【1】,循环结构.=(答案1)=选择结构在Turbo C2.0系统中,若将实型常数1.5存储在内存中,它占用【1】个字节.8执行printf(%d,%d,i,j,k,m);后将在屏幕上输出【1】个整数.=(答案1)=2设a和b均为int整型变量,且a=5,b=7,则以下表达式的值为【1】.1.0+a/b=(答案1)=1.0条件20x30或x20)&(x30)|(x-100)若执行以
4、下程序时从键盘上输入9,则输出结果是【1】 main() int n; scanf(%d,&n); if(n+10)printf(%d,n); else printf(%d,n-); =(答案1)=10有以下程序 main( ) int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf(%dn,x); 执行后输出结果是【1】=(答案1)=-4以下程序运行后的输出结果是【1】 . main() int a=1, b=3; if (a+b) printf(yesn); else printf(non); =(答案1)=yes有如下程序
5、main() float x=2.0,y;if(x10.0)y=1.0/x;else y=1.0;printf(%.2fn,y);该程序的输出结果是【1】.=(答案1)=1.00在C语言的源程序中若出现常量1L,则该常量的类型是【1】.长整型若a是int型变量,则执行表达式a=25/3%3后,a的值为【1】.=(答案1)=2设x,y,z均为int 型变量,请写出描述x或y中有一个小于z的表达式【1】.=(答案1)=xz|yz以下程序运行后的输出结果是 【1】 . main() int a=1,b=2,c=3; if(c=a) printf(%dn,c); else printf(%dn,b);
6、 =(答案1)=1以下程序运行时输出到屏幕的结果是【1】 。#includevoid main() int i=1,m=0; switch(i) case 1: case 2: m+; case 3: m+; printf(%d,m);=(答案1)=2以下程序运行后的输出结果是 【1】main() int a,b,c;a=10;b=20;c=(a%b1); printf(%d,%d,%dn,a,b,c); =(答案1)=10,20,0假定所有变量均已正确说明,下列程序段运行后x的值是【1】 a=b=c=0;x=35; if(!a)x-; else if(b); if(c)x=3; else x
7、=4;=(答案1)=4有以下程序#include main()int c=0,k;for(k=1;k3;k+)switch(k)default:c+=k;case 2:c+;break;case 4:c+=2;break;printf(%dn,c);程序运行后的输出结果是【1】.=(答案1)=3【1】语句,只能用在循环中,以中断某次循环,继续下一次循环.=(答案1)=continue执行语句段for(s=0,i=1;i11;i+) if(i=6) continue; s+=i; 后,s值为【1】.=(答案1)=49有以下程序#include main()int n=2,k=0;while (k
8、+&n+2);printf(%d%dn,k,n);程序运行后的输出结果是【1】.=(答案1)=12执行语句for(s=0,i=1;i=10;i=i+3) s+=i;后,变量s、i的当前值是【1】和【2】.=(答案1)=22=(答案2)=13若有定义:int a23=1,2,3,则初始化后,元素a01得到的初值是【1】.=(答案1)=0下面程序运行结果的最后一行为【1】. main( ) int i,f10; f0=f1=1; for(i=2;i10;i+) fi=fi-2+fi-1; for(i=2;i10;i+) if(i%4=0) printf(n); printf(%3d,fi); =(
9、答案1)=34 55以下程序运行后输出结果中第一行为【1】,第二行为【2】,第三行为【3】.#include stdio.h#define N 3main( )int aNN,bN*N=1,1,i,j; for(i=2;iN*N;i+) bi=bi-1+bi-2; for(i=0;iN;i+) for(j=0;jN;j+) aji=bi*N+j; for(i=0;iN;i+) for(j=0;jN;j+) printf(%3d,aij); printf(n); =(答案1)=1 3 13=(答案2)=1 5 21=(答案3)=2 8 34本程序用改进的冒泡法对数组an的元素从小到大排序,请在程
10、序空白处填空.#define N 10main( )int aN=10,7,43,1,9,6,3,8,5,2; int j,k,jmax,temp;【1】; do k=0; for(j=0;j0&k); for(j=0;jaj+1=(答案3)=jmax=jmax-1以下程序运行后的输出结果是【1】 . main() int a=1, b=3; if (a+b) printf(yesn); else printf(non); =(答案1)=yes以下程序的输出结果是【1】.main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j3;j+) if(j%2)
11、continue; x+; x+; printf(x=%d,x);=(答案1)=x=8有以下程序#include main()int n=2,k=0;while (k+&n+2);printf(%d%dn,k,n);程序运行后的输出结果是【1】.=(答案1)=12除goto语句外,在循环结构中执行【1】语句可提前结束本次循环直接进入下一次循环。=(答案1)=continue若声明char a15=Windows-9x;,语句printf(%s,a+8);的输出结果为【1】.=(答案1)=9x以下程序输出的结果是【1】.main( ) int i,k,a10,p3; k=5; for(i=0;i
12、10;i+) ai=i; for(i=0;i3;i+) pi=ai*(i+1); for(i=0;i3;i+) k+=pi*2; printf(%d,k);=(答案1)=21下面的程序打印杨辉三角形,其格式为: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1程序如下.#define N 11main( ) int i,j,aN+1N+1; for(i=1;i=N;i+) aii=1
13、; ai1=1; for(【1】;iN;i+) for(j=2;【2】;j+) aij=【3】; for(i=1;i0) printf( );j-; for(j=1;j=i;j+) printf(%6d,aij); printf(n); printf(n);=(答案1)=i=3=(答案2)=ji=(答案3)=ai-1j-1+ai-1j有如下程序main() float x=2.0,y;if(x10.0)y=1.0/x;else y=1.0;printf(%.2fn,y);该程序的输出结果是【1】.=(答案1)=1.00有以下程序#include main()int c=0,k;for(k=1;
14、k = 1) i - -;执行后,i的值为【1】.=(答案1)=0有如下程序main() int x=23; do printf(%d,x-); while(!x);该程序的执行结果是【1】.=(答案1)=23有以下程序#include main()int n=2,k=0;while (k+&n+2);printf(%d%dn,k,n);程序运行后的输出结果是【1】.=(答案1)=12设char string =abc_d!;则数组所占字节数应是【1】.=(答案1)=7下列程序段的输出结果是【1】.main( )char b =hello,you; b5=0; printf(%sn,b);=(
15、答案1)=hello执行程序段后,表达式*-p的值是【1】. int a=63,20,30,28; p=&a2;=(答案1)=20执行下面的程序段后,ab的值为【1】. int *v,ab; ab=100; v=&ab; ab=*v+10;=(答案1)=110以下程序的运行结果是【1】.main() char a=12345,*p; int s=0; for(p=a; *p!=0;p+) s=10*s+ *p -0; printf(%d,s);=(答案1)=12345以下程序的运行结果是【1】.main() int x5=2,4,6,8,10,*p,*pp; p=x; pp=&p; print
16、f(%d,*(p+); printf(%d,*pp);=(答案1)=2,4以下程序运行时输出到屏幕的结果是【1】 。 #include long f(int n) static long s; if(n=1)return s=2; else return +s; void main( ) long i,sum=0; for(i=1;i4;i+) sum+=f(i); printf(%ld,sum); =(答案1)=9一个用C语言编写的程序在运行时,如果没有发生任何异常情况,则只有在执行了【1】函数的最后一条语句或该函数中的return语句后,程序才会终止运行.=(答案1)=main以下bina
17、ry函数的功能是利用二分查找法从数组a的10个元素中对关键字m进行查找,若找到,返回此元素的下标;若未找到,则返回值-1.请填空: binary(int a10,int m) int low=0,high=9,mid; while(low=high) mid=(low+high)/2; if(mamid) 【2】 else return(mid); return(-1);main() int a=1,3,5,7,9,11,13,15,17,19,m,r; scanf(%d,&m); r=binary(【3】); if(r=-1) printf(not found!); else printf(
18、found:%d,r+1);=(答案1)=high=mid-1:=(答案2)=low=mid+1:=(答案3)=a,m以下程序的功能是:实现两个复数相加的计算并输出运算结果.#include #include struct comlex float r,i; ;struct complex *cal(struct complex *x1,struct complex *x2) struct complex *p; p=(【1】) malloc(sizeof(struct complex); p-r=(*x1).r+(*x2).r; p-i=(*x1).i+(*x2).i; 【2】;main()
19、 struct complex *p,x,y; scanf(%f%f%f%f,&x.r,&x.i,&y.r,&y.i); p=cal(&x,&y); printf(result:%.2f+%.2fi,【3】); free(p);=(答案1)=struct complex *=(答案2)=return p=(答案3)=p-r,p-i在调用函数fopen(a:b.dat,r)时,若A盘根目录下不存在文件b.dat,则函数的返回值是【1】.=(答案1)=0当程序读写数据文件时,需要有声明语句FILE *fp;,在该声明语句之前必须包含的头文件名为【1】.=(答案1)=stdio.h若有声明char
20、a3=AB; char *p=a;,执行语句printf(%d,p2);后输出结果是【1】.=(答案1)=0当运行以下程序时,从键盘输入controlcatbed-1则以下程序的运行结果是【1】.#include stdio.hmain() char s80,*p; p=s; gets(p); while(*p!=-) if(*p=a|*p=b) puts(p); gets(p); =(答案1)=bed以下程序运行时输出到屏幕的结果是【1】 。 #include int fun(int *x,int n) if(n=0) return x0; else return x0+fun(x+1,n-
21、1); void main( ) int a=1,2,3,4,5,6,7; printf(%dn,fun(a,2);=(答案1)=6C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是【1】.=(答案1)=int#include void fun(int *a,int b,int *c) *a=+b;b=*c;*c=*a; main() int a=10,b=20,c=30; int a=4;c=a+b;printf(%dn,a+b+c); int c=b; fun(&a,b,&c); printf(%dn,a+b+c);printf(%dn,a+b+c);程序输出的第一行是【1】,第二
22、行是【2】,第三行是【3】.=(答案1)=48=(答案2)=62=(答案3)=65在带头结点的单链表中,编一函数删除数据域值为x的结点.struct link *delete_link(struct link *head,int x) struct link *q,*m; q=head; m=head-next; while(m!=0)&(【1】) /*寻找被删除结点m*/ q=m; /*q始终指向m之前的结点*/ m=m-next; if(【2】) /*不存在符合条件的结点*/ printf(can not exit!n); else /*逻辑删除结点*/ q-next=m-next; 【3】; return(head);=(答案1)=m-data!=x=(答案2)=m=NULL=(答案3)=free(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1