




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计练习题一、 选择题1. C语言是一种( c )程序设计语言。A. 低级 B. 面向对象 C. 高级 D. 智能2. 下列特性中,( d )不是C语言的特征。A.运行效率高 B. 结构化程序设计C. 能直接访问物理地址D.类型检测严格3下列标识符中, d 不是C的关键字;A. intB. floatC. char D. scanf4下列标识符中, d 不是C的关键字;A. sizeofB. shortC. long D. define5下列标识符中, d 不是C的关键字;A. gotoB. breakC. auto D. printf6下列标识符中, c 不是C的关键字;A. static B. structC. void D. include7下列自定义标识符中, c 是不符合规定。A. point1xB. _point1x C. 2pointxD. pointx_28下列自定义标识符中, c 是不符合规定。A. MAXB. _MIN C. MAX$D. MIN_29下列自定义标识符中, d 是不符合规定。A. point1_B. _point1x C. pointxD. pointx_#10下列自定义标识符中, a 是不符合规定。A. 2_point1xB. _point1x C. pointxD. pointx_211定义int a=1; int *p=&a; 下列描述( b )是正确的。A&a和&p的值相同;Ba和*p的值相同;Ca和p的值相同; Da和&p的值相同;12定义int a=1; int *p=&a; 下列描述( d )是正确的。A&a和&p的值相同;B&a和*p的值相同;Ca和p的值相同; D&a和p的值相同;13定义int a=1; int *p=&a; 下列描述( c )是错误的。A&a和&p的值不相同;B&a和*p的值不相同;Ca和p的值相同; D&a和p的值相同;14定义int a=1; int *p=&a; 下列描述( d )是错误的。A&a和&p的值不相同;B&a和*p的值不相同;Ca和p的值不相同; D&a和p的值不相同;15输入语句为:scanf(%f,%fn,&radius,&high);下列键盘输入(d)是正确的。 A1 2; B1,2n; C12; D1,2;16输入语句为:scanf(a=%f,b=%f,&radius,&high);从键盘输入(d)是正确的。 A1 2; B1,2; C12; Da=1,b=2;17输入语句为:scanf(a=%f,b=%fn,&radius,&high);从键盘输入()是正确的。 A1 2; B1,2; C12; Da=1,b=2n;18输入语句为:scanf(a=%f b=%f,&radius,&high);从键盘输入()是正确的。 A1 2; B1,2; C12; Da=1 b=2;19double PI=3.1415926, 输出语句为:printf(%3.2lf,PI);下列输出结果()是正确的。 A3.1415926; B3.2; C3.1; D3.14;20double PI=3.1415926, 输出语句为:printf(%5.4lf,PI);下列输出结果()是正确的。 A3.1415926; B3.1415; C3.1416; D5.4;21double PI=3.1415926, 输出语句为:printf(%3.4lf,PI);下列输出结果()是正确的。 A3.1415926; B3.141; C3.1415; D3.1416;22double PI=3.1415926, 输出语句为:printf(%4.2lf,PI);下列输出结果()是正确的。 A3.1415926; B4.2; C3.141; D3.14;23 int a=-1;C语言整型数分配2个字节,在计算机中下列十六进制表示的a()是正确的。 Affff; B8001; C1001; D0001;24 int a=-1;C语言整型数分配2个字节,在计算机中下列十六进制表示的a()是正确的。 A0001; B1001; C-1; Dffff;25 int a=-1;C语言整型数分配2个字节,在计算机中下列十六进制表示的a()是正确的。 A1001; B-0001; C-1; Dffff;26 int a=-1;C语言整型数分配2个字节,在计算机中下列十六进制表示的a()是正确的。 A-ffff; B8001; Cffff; D-1;27下列关于数组名作函数实参的描述,正确的是( c )。 A把实参数组首元素的地址传递给形参数组,两个数组共占同一段内存; B实参数组把各个元素的值传递给形参数组,两个数组各占不同的内存; C把实参数组首元素的地址传递给形参数组,两个数组各占不同的内存; D实参数组把各个元素的值传递给形参数组,两个数组共占同一段内存;28执行语句for (i=1;i+b!=c的值是( a )A1 0 非1 不确定45设逻辑型变量a,b,c,其中a的值为0,则逻辑运算表达式a&b&c的值是( a )A0 1 非1 不确定46设x,y均为float型变量,则下列不合法的赋值语句是( b )A+x y=(x%2)/10Cx*=y+8 x=y=047已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=a+8-3 的值为( a )Af a C.d 10248若当a的值为奇数时,表达式的值为“真”,当a的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是( c )Aa%2=1 !(a%2=0) C. !(a%2) a%249已知ch是字符型变量,下列不正确的赋值语句是( d )Ach=a+b ch=0 ch=a+b ch=5+950若s是int型变量,则表达式s=25/3%3的值为( c )A25 1 2 351若s是int型变量,则表达式s%2+(s-1)%2的值为( b )A0 1 1 252若s是int型变量,则表达式s%2+(s+1)%2的值为( b )A0 1 2 不确定53下列四个选项中,是不合法的用户标识符的选项是( c )AP_0 _abc goto temp54下面是不正确的字符串常量的是( a )Aabc “1212”“0” “ ”55下列表达式中,不能正确表达代数式含义的C语言表达式是( c )Ax/a/b*y*2 2*x*y/a/b2*x*y/a*bx*y/b/a*256假设有下列变量说明:char a; int x; float y; double z; 则表达式a*x+z-y的值的数据类型为( d )Afloat char int double57C语言的编译系统对宏命令的处理是( c )A在程序运行时进行的 B在程序连接时进行的C和C程序中的其他语句同时进行编译的 D在对源程序中其他成分正式编译之前进行的58下面能正确进行字符串赋值操作的是( b )Achar a5=“ABCDE”; Bchar a5=A, B, C, D, E;Cchar *a;a= “ABCDE”; Dchar *a;scanf(“%s”,s);59若有定义:int a5;则数组a中首元素的地址可以表示为( c )A& a a+1 C. a &a160变量的指针,其含义是指该变量的( b )A值 地址 名 一个标志61若已定义char s10;则在下列表达式中不表示s1的地址的是( b )As+1 s+ &s0+1 &s162设有以下说明语句struct sss int a;float b;stype则下面的叙述不正确的是( c )Astruct是结构体类型的关键字 Bstruct sss是用户定义的结构体类型Cstype 是用户定义的结构体类型名 Da和b都是结构体成员名63设有程序段:char str =”ABC”,*p=str;则输出*(p+3)的值为( b )A67 0 字符C 的地址 字符C64若有说明:int *p4;则标识符p( b )A是一个指向整型变量的指针 B是一个指针数组名C是一个指针,它指向一个含有四个整型元素的一维数组D说明不合法65已有函数max(a,b),为了让函数指针变量p指向函数max,正确的赋值方法是( b )A*p=max ; p=max; p=max(a,b); *p=max(a,b);66若有结构体说明如下:struct student int age; int num;stu1,*p;p=&stu1;则以下对结构体变量stu1中成员age的非法引用是( b )Astu1.age student.age p-age (*p).age67若有定义:int a =2,4,6,8,10,12,*p=a;则*(p+1)的值是( b )A2 4 10 1268若有定义:int a5,*p=a;则对a数组元素的正确引用是( a )A*&a5 a+2 *(p+5) *(a+2)69下面对typedef的叙述中不正确的是( b )A用typedef可以定义各种类型名,但不能用来定义变量B用typedef可以增加新类型C用typedef只是将已存在的类型用一个新的标识符来代表D使用typedef有利于程序的通用和移植二、 填空题151. 在C语言程序中,使用输入输出需要包含的头文件是 stdio.h 。2. C程序是由一组 函数 组成的,其中有且只有一个 主函数 函数,C语言文件的后缀是 .c , C语言程序的语句行以 分号 结束, C语言程序的注释以 /* 开始,以 */ 结束。5.C语言程序的函数由 函数的首部 和 函数体 两部分组成。6. C语言的标识符由 字母 、数字 和 下划线 三种符号组成,其中 数字 不能打头,用户自定义标识符不能与C语言的 关键字 相同。8. C语言采用的是 8 位二进制ASCII代码集,共有 256 个字符。9. 函数调用时,实参和形参之间有两种传递方式: 值传递 和 引用传递 。10. 函数调用时,实参与形参的 个数 应该相等, 类型 应匹配。11. C语言程序中函数的声明是把函数的名字、函数类型以及形参的类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查,声明函数时,函数的_ 参数名 _可以省略。12. 函数的定义是指对函数功能的确立,包括指定函数类型、函数名、参数类型、个数及其函数体等,它是一个完整的、独立的函数单位。13.一个函数在它的函数体内,直接或间接地调用它自身,称为 递归 函数。,14. 允许在不同的函数中使用相同的变量名,它们分配不同的单元,互不干扰,也不会发生混淆。在同一源文件中,允许外部变量和内部变量同名。在内部变量的作用域内,外部变量将被屏蔽而不起作用。15. 从变量值存在的时间角度,有静态存储方式和动态存储方式。对变量的存储类型:自动变量(auto)、寄存器变量(register)、外部变量(extern)、静态变量(static)。自动变量和寄存器变量属于动态存储方式,外部变量和静态内部变量属于静态存储方式。16. 指针变量是存放 地址 的变量。结构中可以嵌套其它结构的变量作为数据成员,结构不能嵌套自身的结构变量,但可以包含自身的结构指针。17.结构体一般不能作为一个整体参加数据处理,参加各种运算和操作的是结构体的各个成员项数据。结构体变量使用成员时用 符号,结构体指针使用成员时用 符号;18C语言中所提供的基本数据类型包括:整型 、字符型 、单精度型、双精度型、枚举型。19在C语言中,&运算符作为单目运算符时表示的是取址 运算;作为双目运算符时表示的是按位与 运算。20若for循环语句用以下形式表示:for (表达式1;表达式2;表达式3) 循环体语句则执行语句:for (i=0;i4;i+) printf(“*”);时,表达式1执行1 次,表达式3执行了 4次。21设有程序段 k=1;n=263;do k*=n % 10;n/=10; while (n);其运行结束后k的值为 36 ,循环结束后n的值是0。22在C语言中,二维数组元素在内存中的存放顺序是按行存放 。23在C语言中,一个函数一般由两个部分组成,它们是函数的首部 和 函数体 。24若x为int型变量,则C语言中“x为奇数”的表达式描述是x%2=1。25在C语言中,若x,y,z均为int型变量,则“x或y中有一个小于z”的表达式描述形式为xz |yz 。26字符串“abn012”的长度为5 。等级考试复习题1若a,b,c均为int型变量,则计算表达式a=(b=4)+(c=2)后a的值为,c的值为。2若有如下定义:int a35,则a数组中行下标的下限是,列下标的的上限是。3在C语言中,实型变量可以分为两种类型,它们是 和 。4假设在C语言中,一个int型的数据在内存中占2个字节,则该int型数据的取值范围是 到 。5若a,b,c均为int型变量,则计算表达式a=(b=3)+(c=4)后a的值为,c的值为。6在C语言中,&运算符作为单目运算符时表示的是 运算;作为双目运算符时表示的是 运算。7若for循环语句用以下形式表示:for (表达式1;表达式2;表达式3) 循环体语句则执行语句:for (i=0;ic)后,n的值为,m的值为。9C语言中规定,可执行程序的开始执行点是 。10设整型变量a的值为6,则执行a+=a-=a*a后,a的值为 。11设有程序段 k=1;n=263;do k*=n % 10;n/=10; while (n);其运行结束后k的值为 ,循环结束后n的值是。12若x,a为整型变量,则计算表达式x=(a=4,6*2)后的x值为 ,计算表达式x=a=4,6*2后的x值为 。13若有定义:int x=3,y=4,z=5;则表达式!(x+y)+z-1&y+z/2的值为。14feof( )函数用来判断文件是否结束,如果遇到文件结束,函数值为 ,否则为 。15若a和b均是int型变量,且a和b的初值均为5,则计算表达式b+=a+后a的值 ,b的值为 。16在C语言中,二维数组元素在内存中的存放顺序是 。17在C语言中,指针变量能够赋 或 值18若有int a=3,b=4,c=5;则表达式!(a+b)+c-1&b+c/2的值为 。19在C语言中,数据可以用 和 两种代码形式存放。20在C语言中,表示逻辑值“真”用 ;C语言中提供的三种逻辑运算符分别是 。21在C语言中,文件的存取是以 为单位,这种文件被称为文件。22在C语言中,一个函数一般由两个部分组成,它们是 和 。23程序段:#define MUL(x) (x)*(x)*(x)main( )printf(“%d”,MUL(1+2)+3);的结果是 。24若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n+后x的值 ,n的值为 。25下列add函数的功能是求两个参数之和,并将和值返回给调用函数,函数中错误部分是 ,改正后应为 。void add(float a,float b) float c;c=a+b;return c;26若for循环语句用以下形式表示:for (表达式1;表达式2;表达式3) 循环体语句则执行语句:for (i=0;i3;i+) printf(“*”);时,表达式1执行 次,表达式3执行了 次。27若x为int型变量,则C语言中“x为奇数”的表达式描述是。28在C语言中,若x,y,z均为int型变量,则“x或y中有一个小于z”的表达式描述形式为 。29字符串“abn012”的长度为 。30在C程序中,文件的存取方式有两种,即 存取方式和 存取方式。31设有char a,b;若要通过a&b运算来屏蔽a中的其它位,只保留第2位和第8位(右起为第1位),则b的二进制数是 。32若有定义:int a34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是 ,a21得到的初值是 。33若有定义:int x =2,4,6,8,10,12,*q=x;则*(q+1)的值是 ,*(x+5)的值是 ,34若m数组的元素和它们的值如下所示:数组元素m0,m1,m2,m3,m4,m5,m6,m7,m8,m9的值分别为9,4,12,8,2,10,7,5,1,3,则数组元素mm4+m8的值为 ,m*(m+4)的值为 。35函数调用语句:fgets(buf,n,f);从f指向的文件中读入 个字符放到buf字符数组中,函数值为 。36若有如下定义:int a35,则a数组中行下标的下限是,列下标的的上限是。37程序段:#define y(t) (t)*(t)main( )printf(“%d”,y(1+2)+3);的结果是 。38在C语言中,feof(fp)函数用来判断文件是否结束,如果遇到文件结束,则其函数值为 ,否则为 。39函数调用语句:fgets(buf,m,fp);从fp指向的文件中读入 个字符放到buf字符数组中,函数值为 。40若有定义:int x =1,3,5,7,9,11,*q=x;则*(q+1)的值是 ,*(x+3)的值是 ,41设有char a,b;若要通过a&b运算来屏蔽a中的其它位,只保留第2位和第8位(右起为第1位),则b的二进制数是 。42设二进制数x的值为11001101,若想通过x&y运算使x中的低4位不变,高4位清零,则y的二进制数是 。43在C语言中,数组名是一个不可改变的 ,不能对它进行赋值运算。数组在内存中占用一段连续的存储空间,它的首地址由 表示。三、 读程题1. 阅读下列程序,在下划线上写出输出结果。#include main( )int x=1, y=0, a=0, b=0; switch(x)case 1: switch(y) case 0: a+; break;case 1:b+; break;case 2:a+;b+;break; printf(“%d,%d ”,a,b); /*输出结果: 2,1 */2以下程序的运行结果是求-y=y时-1 求y-时0 。#include main( ) int y=10; do y-; while (-y); printf(“%d, ”,y-);3. 阅读下列程序,在下划线上写出输出结果。#include main( ) int y= -10; do y+; while (+y); printf(“%d, ”,y+); /*输出结果:y=y+=0 +y时1 */4以下程序的运行结果是 6 。 main( ) int x=5; if (x+5) printf(“%dn”,x);else printf(“%dn”,x-);5以下程序的运行结果是#&,&,&* 。#include main( ) int i; for (i=1;i=5;i+) switch(i %5)case 0: printf(“*”);break; case 1: printf(“#”);break; default: printf(“,”);case 2: printf(“&”);6. 阅读下列程序,在下划线上写出输出结果。main( ) int i,j, row, col, m; int a34=1,2,3,4,9,8,7,6,-1,-2,0,5; min=a00; for (i=0;i=2;i+) for (j=0;j=3;j+)if (aijm) m=aij;row=i;col=j;printf(“m=%d row =%d col =%d ”,m,row,col); /*输出结果: */7. 阅读下列程序,在下划线上写出输出结果。#includemain( ) int i,j, row, col, m; int a34=1,2,3,4,9,8,7,6,-1,-2,0,5; m=a00; for (i=0;i=2;i+) for (j=0;jm) m=aij;row=i;col=j;printf(“m=%d row =%d col =%d ”,m,row,col); /*输出结果: m=9 row=1 col=0 */8下列程序的功能是实现输出a,b,c三个数中的最大值。请为程序填空。#include main( )int a=5,b=4,c=8; int u=0,v=0 ;if ( ab ) u=a; else u=b; if ( uc ) v=u; else v=c ;printf(“v=%dn”, v);9下列程序的功能是根据下列函数关系,输入x的值,计算y的值。请为程序填空。main( )int x, y; scanf(“%d”, & x );if ( 2x=10 ) y=x*(x+5);else if ( -1x=2 ) y=4*x;else y=x-6 ;printf(“%dn”, y);10下列程序的功能是采用“顺序查找法”查找数组中是否存在元素x。请为程序填空。#includevoid main( )int a8= 9, 1, 3, 2, 6, 4, 7, 8; int i, x;scanf (“%d”, &x ); for (i=0; i8 ) printf(“not found!”;11程序填空。#includevoid hanoi(int n,char one,char two,char three);void move(char x,char y);void hanoi(int n,char one,char two,char three) /*定义hanio函数*/ if(n=1) move(one,three); else hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); void move(char x,char y) /*定义move函数*/ printf(%c-%cn,x,y);void main() int m;printf(Please input the number of diskes:);scanf(%d,&m);printf(The step to moving %d diskes:n,m);hanoi(m,A,B,C); 12. 阅读下列程序,在下划线上写出变量类型及输出结果。#include stdio.hdouble countArea(int r);double Volumn1();double Volumn2(int r,int h);double PI=3.14; /变量类型: double r=1;int h=1;void main( )int r,h;/变量类型: double volumn,area;r=0; area=PI*r*r;printf(圆的面积%lfn,area);/输出结果: area=countArea(r);printf(圆的面积%lfn,area);/输出结果: h=2;r=1;volumn=Volumn2(r,h);printf(圆柱体积%lfn, volumn);/输出结果: volumn=Volumn1( );printf(圆柱体积%lfn, volumn);/输出结果: volumn=Volumn1( );printf(圆柱体积%lfn, volumn);/输出结果: double countArea(int r)return PI*r*r;double Volumn1( )static int h=-1;/变量类型: h+;return PI*r*r*h;double Volumn2(int r,int h)return PI*r*r*h;7. 阅读下列程序,在下划线上写出输出结果。#include void main()int *p,a;double b=0; char c=a; a=10; p=&a; printf(a=%dn,a); /输出结果: printf(b=%lfn,b); /输出结果: printf(c=%cn,c); printf(&p=%dn,&p); /输出结果: printf(&a=%dn,&a); /输出结果: printf(&b=%dn,&b); /输出结果: printf(“&c=%dn”,&c); /输出结果: printf(“p=%dn”,p); /输出结果: printf(“oxp=%xn,p); printf(“*p=%dn,*p); /输出结果: *p=*p+1;printf(“a=%dn,a); /输出结果: printf(“*p=%dn,*p); /输出结果: a=a+1;printf(“a=%dn,a); /输出结果: printf(“*p=%dn,*p); /输出结果: 四、 写程序1.读懂下列程序,写出冒泡排序子函数。void bubble(int ,int);void main( )int i,array10=8,3,-5,4,9,-1,2,6,1,0;bubble(array,10); /调用排序函数 for(i=0; iNUM; i+)printf(%-5d,arrayi); /显示排序后的数据void bubble(int a,int size) /*冒泡排序*/int i,temp,pass;for (pass=1;passsize; pass+) for (i=0;iai+1) temp=ai;ai=ai+1;ai+1=temp;1.读懂下列程序,写出冒泡排序子函数。void bubble(int *p,int);void main( )int i,array10=8,3,-5,4,9,-1,2,6,1,0;bubble(array,10); /*调用排序函数*/ for(i=0; iNUM; i+)printf(%-5d,arrayi); /*显示排序后的数据*/void bubble(int *p,int size) /*冒泡排序*/int i,temp,pass;for (pass=1;passsize; pass+) for (i=0;iai+1) temp=ai;ai=ai+1;ai+1=temp;2. 用递归函数计算n!。#includelong fac (int n ); /*对fac函数的声明*/void main() int n; long y; printf(Please input an integer number:); scanf(%d,&n); y=fac(n); printf(%d!=%-10ldn,n,y);long fac(int n)/*定义fac函数*/ long f; if(n0) printf(n0,data error!); else if(n=0lln=1) f=1; else f=fac(n-1)*n; return(f);3. 用循环结构计算n!。#includevoid main() int n,t,i; i=1; t=1; for(i;i=n;i+) t=t*i; printf(%d,t)4. 编程计算。#includemai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年深海矿产资源勘探技术装备创新与市场潜力报告
- 2025年高中数学概率统计知识冲刺押题试卷
- 2025年房地产估价师考试房地产估价实务冲刺试卷
- 2025年考研英语(一)阅读理解技巧精讲 阅读理解高分策略
- 2025年公共营养师二级考试专项训练试卷及真题解析
- 现代化家具知识培训总结课件
- 2025年环境影响评价工程师考试案例分析试卷 环评报告专项强化
- 现代农业知识培训课件
- 测试工程师的岗位职责
- 新重庆市劳动合同范本
- 2025版建筑垃圾处理废弃物处理设施运营管理合同
- 会展推广的合同范本
- 2024年贵阳市南明区选聘社区工作者考试真题
- 武消院火灾调查B讲义01电气火灾调查
- 起搏器植入患者全程护理要点
- (2025年标准)会议代办协议书
- 2025年招录考试-工会招聘考试历年参考题库含答案解析(5套典型题)
- 2025年电力工程行业研究报告及未来发展趋势预测
- 2025年湖南省中考语文试卷
- 气道支架植入术后护理查房
- 2025年时事政治题附完整答案详解【各地真题】
评论
0/150
提交评论