1、C语言复习题一、填空 共17题 (共计60分)第1题 (2.0分)运行以下程序时,输出结果是【1】long fit(int n)if(n2) return(fit(n-1)+fit(n-2);else return(3);main()printf(%ldn,fit(4);第2题 (2.0分)以下程序运行后的输出结果是【1】.#include void main() char ch=abc,x34;int i; for(i=0;i3;i+)strcpy(xi,ch); for(i=0;i3;i+)printf(%s,&xii); printf(n); 第3题 (2.0分)下列程序的输出结果是【1
2、】 #include main( ) char b30; strcpy(&b0,CH); strcpy(&b1,DEF); strcpy(&b2,ABC); printf(%s n,b); 第4题 (2.0分)运行以下程序时,输出结果是【1】#include int b; int fun (int a) static int c=2; return(+a)+(+b)+(+c); void main( ) int i, a=1; for(i=0;i2;i+) printf(%5d,fun(a);第5题 (2.0分)在函数内部声明局部变量时缺省了存储类型,则该变量存储类型是【1】.第6题 (2.0
3、分)有以下定义和语句struct date int day; int month; int year; union int share1; float share2; share; a; 则sizeof(a)的值是【1】.第7题 (2.0分)以下程序的运行结果是【1】main() int a34=1,3,5,7,9,11,13,15,17,19,21,23; int i; int (*p)4=a; printf(a23=%dn,i,j,*(*(p+i)+j);第8题 (2.0分)以下程序的运行结果是【1】void swap(int *r,int *s) int *t; t=*r; *r=*s;
4、 *s=t;main() int a=1,b=2,*p,*q; p=&a; q=&b; swap(&p,&q); printf(%d,%dn,*p,*q);第9题 (4.0分)以下程序运行时, 输出结果的第一行是【1】, 第二行是【2】.#include void f (int *x, int y) *x=y+1 ; y=*x+2 ; main( ) int a=2, b=2 ; f(&a, b) ; printf(%d n%d,a,b);第10题 (4.0分)设有以下main函数main(int argc, char *argv ) while(argc 1) +argv; printf(%
5、sn, *argv); - -argc; 经过编译、连接后得到可执行文件名为c1.exe,若在系统的命令状态下输入命令行:c1 nanjing xiaozhuang college,则在第一行输出【1】,第三行输出【2】.第11题 (4.0分)请填空以使程序完整。有一个m*n的矩阵,以下程序的功能是求出其中值最大的元素的值,以及相应得行号和列号。#define M 4#define N 3main()int i,j,row=0,colum=0,max;int aMN=1,23,3,4,8,6,17,6,1,0,11,17;【1】;for(i=0;i=3;i+) for(j=0;j=2;j+)
6、if(【2】) max=aij; row=i; colum=j; printf(max=%d,row%d,colum=%dn,max,row,colum);第12题 (4.0分)以下程序的功能是:将无符号八进制数字构成的字符串转换为十进制整数.例如,输入的字符串为:556,则输出十进制整数366.请填空.#include main() char s6; int n,i=0; gets(s); n= 【1】 -0; while( 【2】 !=0)n=n*8+si-0; printf(%d n,n);第13题 (6.0分)该程序功能是:将有10个元素的整型数组a中下标值为偶数的元素从大到小排列,其
7、他元素不变。请填空以使程序完整。#define k 10main()int ak=1,2,5,7,9,3,4,6,8,10,t;int i,j;for(i=0;ik;i+)printf(%5d,ai);for(i=0;i=【1】;i=i+2)for(j=i+2;jk;j+=2)if(【2】)t=ai;【3】;aj=t;for(i=0;ik;i+)printf(%5d,ai);printf(n);第14题 (6.0分)请填空以使程序完整。该程序的功能是把从键盘输入的十进制(long型)以16进制数的形式输出。#include main( ) char b16=0,1,2,3,4,5,6,7,8,
8、9,A,B,C,D,E,F; int c64,d,i=0; long n; printf(Enter a number:n);scanf(%ld,&n); do ci=【1】; i+; n=【2】; while(n!=0); printf(Transmite mew base:n); for(-i;i=0;-i) 【3】; printf(%c,bd); 第15题 (6.0分)阅读以下程序 main() char *str3=Fortrain ,Prolog,Pascal ; char *p; int i; p=str; for(i=0;i3;i+,p+) printf(%cn ,(*(*p+3
9、)+1); 该程序第1行、第2行及最后一行的输出分别为【1】 、【2】和【3】.第16题 (6.0分)以下程序使用递归方法求数组中的最大值及其下标值,请填空:#define M 10void findmax(int *a,int n,int i,int *pk)if(ia*pk) 【1】;findmax(a,n,i+1,【2】);main()int aM,i,n=0;printf(nEnter %d data:n,M);for(i=0;iM;i+)scanf(%d,【3】);findmax (a,M,0,&n);printf(The maximum is: %dn,an);printf(its
10、 index is: %dn,n);第17题 (4.0分)阅读以下程序 main() char *str3=Basic ,Visual C+,Pascal ; char *p; int i; p=str; for(i=0; iy=2B:zyxC:xy=1D:x=(x=0, y=1, z=2)第5题 (2.0分)有声明int x=2;,以下表达式中值不等于8的是_.A:x+=2,x*2B:x+=x*=xC:(x+7)/2*(x+1)%2+1)D:x*7.2/x+1第6题 (2.0分)若有数组A和B的声明static char A =ABCDEF, B = A, B, C,D,E, F; 则数组A
11、和数组B的长度分别是_.A:7,6B:6,7C:6,6D:7,7第7题 (2.0分)以下程序运行后的输出结果是_.main( ) char a7= a00a00; int i,j; i=sizeof(a); j=strlen(a); printf(%d %d,i,j);A:2 2B:7 2C:7 5D:6 2第8题 (2.0分)以下不正确的说法为( )A:在函数内的复合语句中定义的变量在本函数范围内有效B:在不同函数中可以使用相同名字的变量C:在函数内定义的变量只在本函数范围内有效D:形式参数是局部变量第9题 (2.0分)以下程序运行结果( )long fun(int n)long s;if(
12、n=1|n=2) s=2;else s=n-fun(n-1);return s;main()printf(%dn,fun(3);A:2B:1C:0D:10第10题 (2.0分)下面程序运行后的输出结果是_.main() char arr24; strcpy(arr0,you); strcpy(arr1,me); arr03= &; printf(%sn,arr0); A:you&meB:youC:meD:err第11题 (2.0分)以下叙述正确的是( ).A:一个用C语言编写的程序在运行时总是从main函数开始逐条执行B:main函数是系统库函数C:main函数中每行只能出现一条语句D:mai
13、n函数必须出现在所用其它函数之前第12题 (2.0分)语句printf(%d,(a=2)&(b= -2);的输出结果是( )A:无输出B:结果不确定C:-1D:1第13题 (2.0分)若有函数fun的定义为void fun() static int a=1; 则下列叙述中不正确的是( ).A:在每次调用fun函数时,变量a的值是上次调用结束时a的值B:在fun函数之外,可以用变量名a直接引用a的值C:在其它函数中,可以出现声明double a=2.5;D:fun函数的形式参数不能取名为a第14题 (2.0分)以下程序输出结果是( )#includevoid main()int i,a10;fo
14、r(i=9;i=0;i-) ai=10-i;printf(%d%d%d,a2,a4,a8);A:852B:741C:862D:369第15题 (2.0分)以下程序的输出结果是( ). main() int i; for(i=A;i=T;i+) printf(%c,i+32); printf(n); A:编译不通过,无输出B:ABCDEFGHC:abcdefghiD:abcdefgh第16题 (2.0分)以下关于if语句,描述错误的是( ).A:条件表达式可以是任意的表达式B:条件表达式只能是关系表达式或逻辑表达式C:条件表达式的括号不可以省略D:与else配对的if语句是其之前最近的未配对的i
15、f语句第17题 (2.0分)以下程序段循环执行的次数是( ). int k=0; while(k = 1) k+; whileA:无限次B:有语法错,不能执行C:一次也不执行D:执行1次第18题 (2.0分)以下正确的叙述是( )A:在C程序中,语句之间必须要用分号;分隔B:若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型C:在C程序中,无论是整数还是实数,都能准确无误地表示D:在C程序中,%是只能用于整数运算的运算符第19题 (2.0分)若有以下定义,则对a数组元素的正确引用是()int a5,*p=a;A:p+5B:*(a+2)C:a+2D:&a+1第20题 (2.0分)以下程序执行后的输出结果是( ).main( ) int i,s=0; for(i=1;i10;i+=2) s+=i+1; printf(%dn,s);A:自然数19的累加和B:自然数110的累加和C:自然数19中的奇数之和D:自然数110中的偶数之和
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1