《C语言程序设计》练习题参考_第1页
《C语言程序设计》练习题参考_第2页
《C语言程序设计》练习题参考_第3页
《C语言程序设计》练习题参考_第4页
《C语言程序设计》练习题参考_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文档供参考,可复制、编制,期待您的好评与关注! 一、 选择题(在A、B、C、D中选择一个正确的)1、以下叙述不正确的是( )。A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面2、C语言规定:在一个源程序中,main函数的位置( )。A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后3、一个C程序的执行是从( )。A、本程序的main函数开始,到本程序main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文

2、件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束4、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母、数字和下划线中任一种字符5、在计算机内部用来传送、存储、加工处理的数据或指令都是以( )形式表示的。A、十进制B、八进制C、二进制D、十六进制6、十进制数127转换为二进制数是( )。A、1111110B、1111111C、1000000D、100000017、十六进制数10H转换为八进制是( )。A、10B、2C、20D、168、1KB表示( )。A、1024位B、1000

3、位C、 1024字节 D、 1000字节9、以下不正确的标识符是()。A、 scoreB、 _abcC、 x+yD、 Hello10、 十进制数107转换成二进制数是( )。A. 01101011B. 10001101C.0110 1101D. 1110 110111、二进制数1011011转换为十进制数是( )。A、91B、87C、107D、12312、若x、i、j和k都是int型变量,则计算下面的表达式后,x的值为( )。x=(i=4,j=16,k=32)A、4B、16C、32D、5213、假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是( )。A、7B、8C、6D、2

4、14、若有说明语句:char c=72;则变量c( )。A、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法,c的值不确定15、若有说明语句:char c=82;则变量c( )。A、包含1个字符B、包含2个字符C、包含3个字符D、说明不合法,c的值不确定16、设变量a是整型,f是单精度实型,i是双精度实型,则表达式10+a+i*f值的数据类型为( )。A、intB、floatC、doubleD、不确定17、表达式18/4*sqrt(4.0)/8值得数据类型是( )。A、intB、floatC、doubleD、不确定18、设C语言中,一个int型数据在内存中占2个字节,则unsigne

5、d int型数据的取值范围是( )。A、0255B、032767C、065535D、0214748364719、在C语言中,char型数据在内存中的存储形式是( )。A、补码B、反码C、原码D、ASCII码20、下列标识符中,不能作为合法的C语言变量名的是( )。A. s_1B. intC. _floatD. _12321、下列变量定义不合法的是( )。A. short _a=1.1e-1;B. double b=1+5e2;C. int long c=0xfdaL;D. float and=1.e-3;22、若变量x、y已正确定义并赋值,下列符合C语言语法的表达式( )。A. +x,y=xB

6、. x+1=y C. x=x+10=x+y D. double(x)/1023、将字符A(ASCII码值为65)赋值给变量c,不正确的表达式是( )。A. c=65B. c=AC. c=65 D. c=10124、下列合法的字符常量是( )。A. “n”B. abC. x3tD. n25、getchar()函数可以从终端输入一个( )。A. 字符串B. 整型变量表达式值C. 实型变量值D.字符 26、以下程序段的输出结果是( )。float x=-1234.567;printf(“%-8.3f, ”,x);printf(“%12.3fn”,x);A. 1234.567, -1234.567B.

7、 -1234.567, -1234.567C. 1234.567,-1234.567D. -1234.567, -1234.56727、以下程序段的输出结果是( )。char c= a; int a=99;printf(“%d, %d, %c, %c ”, c, a, c, a);A. 97, 99, a, c B. a, 99, a, 99C.99, 99, a, aD. 97, 99, a, 9728、以下程序段的输出结果是( )。int a=3, b=4, c=5;printf(“%d, %d,%d ”,+a+c,c+ b+, c+2);A. 9,9, 7 B. 8, 10,7C.9,1

8、0,7D. 9, 9,529、有以下程序段:int k1,k2,k3,k4;scanf(“%d %d”,&k1,&k2);scanf(“%d, %d”,&k3,&k4); 若将10赋值给变量k1,k2,将20赋值给k3,k4,下列正确的数据输入是( )。A. 10 1020,20B.10,10,20,20C.101020,20 D.10 10 20 2030、若x为double型变量,则能正确输入x值的语句是( )。A. scanf("%lf",&x) B. scanf("%ld",&x) C. scanf

9、("%f",&x) D. scanf("%5.1f",&x) 31、阅读以下程序,当输入数据的形式为:25,13,10<CR>,正确的输出结果为( )。<CR>代表回车#include<stdio.h>void main() int x,y,z;scanf("%d%d%d",&x,&y,&z);printf("x+y+z=%dn",x+y+z);A、 x+y+z=48B、 x+y+z=35C、 x+z=35D、 不确定值32、阅读以下程序,

10、当输入数据的形式为:25,13,10<CR>,正确的输出结果为( )。<CR>代表回车#include<stdio.h>void main() int x,y,z;scanf("%d,%d,%d",&x,&y,&z);printf("x+y+z=%dn",x+y+z);A、x+y+z=48B、x+y+z=35C、 x+z=35D、 不确定值33、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c

11、为2,从键盘输入数据的正确形式应当是( )。表示空格A、132B、1,3,2<回车>C、a=1b=3c=2<回车>D、a=1,b=3,c=2<回车>34、关于逻辑运算的对象,下面说法正确的是( )。A. 只能是0或者1B. 只能是0或非0正数C. 只能是整型或字符型数据D. 可以是任何类型的数据35、关于以下程序,说法正确的是( )。#include<stdio.h>void main()int x,y;scanf("%d,%d",&x,&y);if(x>y)t = x; x = y;y = t;else

12、x+; y+;printf("%d,%d",x,y);A. 有语法错误,不能通过编译 B. 若输入:2,3,则输出:3,4C. 若输入:3,2,则输出:2,3 D. 若输入:4,3,则输出:4,5 36、若有如下数据描述: int x=1,y=3,z=5;”执行表达式“z+=x-&&y+&&z+”后,x,y,z的值分别为( )。A. 0、3、5 B. 0、4、7C.2、3、6 D. 2、3、737、关于以下程序,描述正确的是( )。#include<stdio.h>void main() int a=1; if (a) print

13、f(“*”); else printf(“#”);A. 有语法错误,不能通过编译B. 输出:*C. 可以通过编译,但不能通过连接D. 输出:#38、以下程序段程序1:int i=5,s=0; while (i>0) i-; s=s+i; 程序2: int i=5,s=0; while (i=1) i-; s=s+i; 两段程序执行后变量s的值分别是( )。A. 15,0 B. 15,15 C.0,死循环D. 程序1语法错误,死循环39、以下程序段程序1: int i=5,s=0;while (i>0) s=s+i; break; i-; 程序2:int i=5,s=0;while

14、(i>0) s=s+i; continue; i-; 两段程序执行后变量s的值分别是( )。 A. 0,15B.5, 15C. 15,15D. 死循环, 死循环40、在C语言中,关于函数以下说法正确的是( )。A. 函数都要完成一定的功能,函数必须有返回值B. 函数声明和函数定义的作用是相同的,没有区别C. 如果没有return语句,被调函数就无法返回主调函数D. 函数声明和函数定义中的函数类型、形参数量和形参类型必须完全相同41、在C语言程序中,以下描述正确的是( )。A. 函数定义可以嵌套,但函数调用不可以嵌套B. 函数定义不可以嵌套,但函数调用可以嵌套C. 函数定义和函数调用均不可

15、以嵌套D. 函数定义和函数调用均可以嵌套42、下列变量定义以后,变量p1,p2是指针变量的是( )。A. int *p1,p2;B. int *p1,*p2;C. *int p1,p2;D. int *p1;*p2;43、若有如下变量定义:int a=10,b=20,*p1=&a,*p2=&b;下列赋值语句与语句b=a;等价的是( )。A. p2=p1;B. *p2=*p1;C. p2=&a;D. p2=*p1;44、下列二维数组的定义正确的是( )。A. int a3;B. float a(3,4);C. float a(3)(4);D. float a34;45、下

16、列二维数组的初始化,正确的是( )。A. int a2=1,2,1,4,3,2; B. int a 3= 1,2,1,4,3,2;C. int a24=1,2,3,4,5,6 ;D. int a3=(0,1,2);46、若有如下定义int a34=1,2,3,4,5,6,7,8,9,10;则a11和a22的初始化值分别为( )。A. 6、0B.2、4C.1、4D.0、047、若有如下定义:char str =”English”; char str ='E' ,'n','g','l','i','s',

17、'h'则两个数组str的长度分别为( )。A.8,6 B. 9,7 C. 8,7 D.7,748、下列对字符数组s赋值,不合法的( )。A. char s =”Quzhou”; B. char s20=”Quzhou”;C. char s20; s="Quzhou0" D. char s20= 'Q, 'u', 'z', 'h', 'o', 'u'33、以下枚举类型定义,枚举常量Thu的值为( )。enum weekdaySun=7,Mon=1,Tue,Wed,Thu,F

18、ri,Sat;A. 0B.2C.4D.649、若有以下定义,int类型占2个字节,float类型占4个字节,char类型占1个字节。程序1:union mydata 程序2:struct mydata char c; char c; int i; int i; float d; float d; data1; data1;变量data1占用内存空间大小分别为( )字节。A. 4,7 B.4,4 C.7,4 D.7,750、若有以下定义,int类型占2个字节struct stu char name10; int num; float score; student1, *p1=&stude

19、nt1;则对结构体变量student1的成员num的引用不正确的是( )。A. p1.numB. student1.numC.p1->numD.(*p1).num51、fopen( )函数打开文件错误后的返回值和文件结尾的返回值分别为( )。A. NULL,NULL B. NULL,EOFC. 1,0D. 无返回值,052、变量的指针,其含义是指该变量的( )。A、值B、地址C、名D、一个标志53、下面程序段的运行结果是( )。char str="ABC",*p=str;printf("%dn",*(p+3);A、67B、0C、字符'C&#

20、39;的地址D、字符'C'54、若有以下定义,则对a数组元素的正确引用是( )。int a5,*p=a;A、*&a5B、a+2C、*(p+5)D、*(a+2)55、若有以下定义,则对a数组元素地址的正确引用是( )。int a5,*p=a;A、p+5B、*a+1C、&a+1D、&a056、语句while(!E);中的表达式等价于( )。A、E=0B、E!=1C、E!=0D、E=1二、填空题1、若a是int型变量,则下面表达式的值为 。(a=4*5,a*2),a+62、若a是int型变量,则计算表达式后a的值为 。a=25/3%33、若x和n均是int型变

21、量,且x和n的初值均为5,则计算表达式后x的值为 ,n的值为 。x+=n+4、若有定义:int b=7;float a=2.5,c=4.7; 则下面表达式的值为 。a+(int)(b/3*(int)(a+c)/2)%45、若有定义:char c='010'则变量c中包含字符个数为 。6、假定用2个字节存储有符号整数。-35的原码是 H,反码是 H,补码是 H。7、标识符只能由 、 和 组成,并且其第一个字符必须是 。8、若有如下数据描述: int a = 1,b=2,c=3;表达式a>b?(c=(a+)+(-b):(c=(-a)+(b+)运算后,变量a、b、c分别为 、

22、、 。9、数学式 的C语言表达式为 。10、假设变量a和b均为整型,以下语句不借助其他变量把a、b中的值进行交换。请填空。a+= ; b=a- ;a-= ;11、当a=3,b=2,c=1 时,表达式 f=a>b>c的值是 。12、当a=5,b=4,c=2 时,表达式 a>b!=c的值是 。13、设y为int型变量,请写出描述“y是奇数”的表达式 。14、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式 。15、若a=6,b=4,c=3,则表达式a&&b+c|b-c的值是 。16、若a=1,b=4,c=3, 则表达式!(a<b)|!

23、c&&1的值是 。17、执行语句for(i=1;i+<4; );后变量i的值是 。18、在C语言中,二维数组元素在内存中的存放顺序是 。19、若有定义:int a34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是 ,a21得到的初值是 。三、阅读程序写结果1、以下程序执行后的输出结果是 。main() int a,b,c,d,x; a=c=0; b=1; d=20; if(a) d=d-10; else if(!b) if(!c) x=15; else x=25; printf("%dn",d);2、设有程序段switch(grade)

24、case 'A':printf("85-100n"); case 'B':printf("70-84n"); case 'C':printf("60-69n"); case 'D':printf("<60n"); default: printf("error! n");若grade的值为'C',则输出结果是 。3、以下程序执行后的输出结果是 。main() int x=1,y=0; switch(x) case

25、 1:switch(y) case 0:printf("*1*n");break; case 1:printf("*2*n");break; case 2:printf("*3*n"); 4、以下程序执行后的输出结果是 。main() int num=0; while(num<=2) num+; printf("%dn",num); 5、以下程序执行后的输出结果是 。#include<stdio.h>main() int i; for(i=1;i<5;i+) if(i%2) printf(&

26、quot;*"); else continue; printf("#"); printf("$n");6、以下程序执行后的输出结果是 。#include<stdio.h>main() int i,t,sum=0; for(t=i=1;i<=10; ) sum+=t; +i; if(i%3=0) t=-i; else t=i; printf("sum=%dn",sum);7、以下程序执行后的输出结果是 。#include<stdio.h>main() int f10,i; f0=f1=1; for

27、(i=2;i<10;i+) fi=fi-2+fi-1; for(i=0;i<10;i+) if(i%5=0) printf("n"); printf("%3d",fi); 8、以下程序执行后的输出结果是 #include<stdio.h>main() int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%dn",p);func(int a,int b) static int m=0,i=2; i+=m+1; m=

28、i+a+b; return m;9、 以下程序执行后的输出结果是 。#include<stdio.h>int f(int a);void main() int a=2,i; for(i=0;i<3;i+) printf("%4d",f(a);int f(int a) int b=0; static int c=3; b+;c+; return (a+b+c);10、以下程序执行后的输出结果是 。#include<stdio.h>void main() int a5=5,10,-7,3,7,i,j; sort(a); for(i=0;i<5

29、;i+) printf("%4d",ai);int sort(int a) int i,j,t; for(i=0;i<4;i+) for(j=0;j<4-i;j+) if(aj>aj+1) t=aj;aj=aj+1;aj+1=t;11、以下程序执行后的输出结果是 。#include<stdio.h>void main() int a=1,b=2,c=3; +a; c+=+b; int b=4,c; c=b*3; a+=c; printf("first:%d,%d,%dn",a,b,c); a+=c; printf("

30、;second:%d,%d,%dn",a,b,c); printf("third:%d,%d,%dn",a,b,c);12、 以下程序执行后的输出结果是 。#include<stdio.h>void main() int i,j; for(i=1;i<=3;i+) for(j=i;j<=5;j+) printf(" *"); printf("n"); 13、 以下程序执行后的输出结果是 。#include <stdio.h>int main()    

31、; int a = 1;    switch(a)        case 0:printf("a");        case 1:printf("b");        case 2:printf("c")

32、;break;        case 3:printf("d");        return 0;14、 以下程序执行后的输出结果是 。 #include<stdio.h>int func(int a,int b);void main() int x=6,r; r=func(x,x+=2); printf("x=%d,r=%dn",x,r); int func(

33、int a,int b) int c; c=a+b; return c;15、 以下程序执行后的输出结果是 。#include<stdio.h>int m=20;int fun(int x,int y) int m=2; return (x*y-m);void main() int a=4,b=5; printf("%dn",fun(a,b)/m);16、 以下程序执行后的输出结果是 。#include<stdio.h>#include<string.h>int main()    cha

34、r * str = "I LOVE CODE!"    int len;    str += 7;    len = strlen(str);    str -= 7;    printf("%s can be %d chars long", str, len);    retu

35、rn 0;17、 以下程序执行后的输出结果是 。sub(int x,int y,int *z)*z=y-x;main() int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf("%4d,%4d,%4dn",a,b,c);18、以下程序执行后的输出结果是 。main() char a="Language",b="programe" char *p1,*p2; int k; p1=a;p2=b; for(k=0;k<=7;k+) if(*

36、(p1+k)=*(p2+k) printf("%c",*(p1+k);四、程序填空1、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母,其它字符保持不变。main() char ch; scanf("%c",&ch); if( ) ch=ch+32; else if(ch>='a'&&ch<='z') printf("%cn",ch);2、下面程序根据以下函数关系,对输入的每个x值,计算出y的值,请填入正确内容。xyx=

37、a或x=-a0-a<x<asqrt(a*a-x*x)x<-a或x>ax#include<math.h>main() int x,a; float y; scanf("%d %d",&x,&a); if ( ) y=0; else if( ) y=sqrt(a*a-x*x); else y=x; printf("%fn",y);3、鸡兔共有30只,脚共有90条,下面程序段计算鸡兔各有多少只,请填空。for(x=1;x<=29;x+) y=30-x; if( ) printf("%d,%dn",x,y);4、下面程序以每行4个数据的形式输出a数组,请填空。#define N 20main() int aN,i;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论