您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > C语言程序设计复习练习题
13aebcC语言程序设计复习/练习题说明:★本套练习题仅仅反映考试的题型,只作为考前的复习和参考。★这些题目基本涵盖了课程的基本知识和重点内容。要利用好这些题目,关键不能靠死记硬背,而是透过题目掌握其涉及的知识点和程序所涉及的重要算法。一、单选题1.C程序的基本构成单位是【】A)文件B)命令C)函数D)语句2.在C语言中,'a'是【】A)字符串常量B)字符常量C)变量D)函数3.在C语言中,“a=b=c=5”属于哪种表达式?【】A)关系B)赋值C)逻辑D)非法4.设a、b为整型,则表达式(a=2,b=5,b++,a+b)的值是【】A)2B)6C)7D)85.若有以下变量定义:intb=2;floata=5;则表达式“a/b”之值为【】A)2.5B)2C)3D)5/26.若j=3,则表达式(++j)+(j++)的值为【】A)6B)7C)8D)107.以下只能输入单个字符的函数是【】A)printf()B)puts()C)getchar()D)putchar()8.若a的原值为4,则表达式“a*=a-=3”运算后,a的值是【】A)13B)4C)3D)19.若a=5、b=3、c=1,则表达式“abc”的值为【】A)0B)1C)3D)510.若有代数式:以下错误的C语言表达式是【】A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*311.下列能输出字符数组str中字符串的语句是A)printf(%c,str[0]);B)printf(%s,str);C)printf(%s,str[]);D)putchar(str);12.若p=&x,则下列关系表达式之值为1的是【】A)p==xB)*p==xC)&p==xD)*x==p13.C语言中最基本的数据类型包括【】A)整型、实型、逻辑型B)整型、实型、字符型2C)整型、逻辑型、字符型D)整型、实型、字符串型14.C语言中,要求运算对象必须是整型数据的运算符是【】A)%B)/C)\D)&&15.表示数学关系“x≥y≥z”的C语言表达式是【】A)x=y=zB)x=y||y=zC)x=y&&y=zD)x≥y≥z16.以下说法中正确的是【】A)C程序总是从文件中第一个函数开始执行B)C程序中,只有main()函数才可以调用其他函数C)C程序总是从main()函数开始执行D)C程序中的main()函数必须放在程序的开头17.若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值为【】A)2.5B)2.75C)3.5D)018.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为【】A)intB)floatC)doubleD)不确定19.有输入语句:scanf(%d,%d,&a,&b);为使变量a、b分别为5和3,从键盘输入数据的正确形式为【】A)53回车B)5,3回车C)a=5b=3回车D)a=5,b=3回车20.定义如下变量和数组:intj;intx[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是【】for(j=2;j=0;j--)printf(%2d,x[j][2-j]);A)159B)147C)753D)36921.执行下面程序后,a的值是【】#defineSQR(x)x*xvoidmain(){inta=10,k=2,m=1;a=SQR(k+m);printf(%d\n,a);}A)10B)5C)2D)122.以下叙述不正确的是【】A)在函数内部定义的变量是局部变量3B)函数中的形式参数是局部变量C)全局变量的作用范围仅限于其所在的整个文件D)局部变量的作用范围仅限于本函数23.设a=3,b=4,c=2,d=1,则表达式“ab?a:cd?c:d”的值为【】A)4B)3C)2D)124.有以下程序段:x=-1;dox=x*x;while(!x);执行时,循环体执行的次数为【】A)0B)1C)2D)不确定25.以下不正确的if语句形式是【】A)if(xy&&x!=y);B)if(x==y)x+=y;C)if(x!=y)scanf(%d,&x)elsescanf(%d,&y);D)if(xy){x++;y++;}26.以下程序的输出结果是【】voidmain(){intx=2,y=-1,z=2;if(xy)if(y0)z=0;elsez+=1;printf(%d\n,z);}A)0B)1C)2D)327.以下能正确计算1×2×3×…×10的程序段是【】A)i=1,s=1;B)s=1;i=1;dowhile(i=10){s=s*i;i++;}s=s*(++i);while(i11);C)for(i=1,s=0;i=10;i++)D)for(i=1,s=1;;i++)s=s*i;s=s*i;28.若j为整型变量,则以下循环执行次数是【】for(j=0;j==0;)printf(%d,j--);A)无限次B)0次C)1次D)2次29.若有说明:inta[10];则对a数组元素的正确引用是【】4A)a[3.5]B)a(8)C)a[6-5]D)a[10]30.C语言规定,变量做实参时,它和对应形参之间的数据传递方式是【】A)地址传递B)单向值传递C)双向值传递D)由用户指定传递方式31.C中,一个float类型的数据在内存中占用的字节数是【】A)1B)2C)4D)832.设有程序段:intk=5;while(k=0)k--;则下列描述中正确的是【】A)while循环执行5次B)循环是无限循环C)循环语句一次也不执行D)循环体语句执行一次33.下面程序段的运行结果是【】charc[5]={'a','b','\0','c','\0'};printf(“%s”,c);A)'a''b'B)abC)AbcD)abc34.以下不正确的字符串赋值语句是【】A)char*s;s=abcde;B)chars[]=abcde;C)chars[10];s=abcde;D)char*s=abcde;35.设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是【】A)k=*p1+*p2;B)p2=k;C)p1=p2;D)k=p2-p1;36.下面程序的输出结果是【】voidmain(){chars[]=ABCD;char*p;for(p=s;ps+4;p++)printf(“%s\n”,p);}A)ABCDB)AC)DD)ABCDBCDBCABCCDCBABDDAA37.以下关于C函数的定义和调用描述正确的是【】A)函数的定义可以嵌套,但函数的调用不可嵌套B)函数的调用可以嵌套,但函数的定义不可嵌套C)函数的定义和调用均可以嵌套D)函数的定义和调用均不可嵌套38.以下关于变量的作用域说法正确的是【】A)在不同函数中不能使用相同名字变量5B)在函数外部定义的变量只在本函数范围内有效C)在函数内的复合语句定义的变量在本函数内有效D)形式参数是局部变量39.以下关于变量的作用域叙述不正确的是【】A)在函数内部定义的变量是局部变量B)函数中的形式参数是局部变量C)全局变量的作用范围仅限于其所在的文件D)局部变量的作用范围仅限于本函数40.以下关于C函数参数说法不正确的是【】A)实参可以是常量、变量和表达式B)形参可以是常量、变量和表达式C)实参可以为任意数据类型D)形参应与对应的实参类型一致41.以下关于C函数返回值的叙述正确的是【】A)被调函数中只有使用return语句才能返回主调函数B)使用一个return语句可以返回多个函数值C)函数返回值类型取决于return语句中的表达式类型D)函数返回值类型取决于定义该函数时所指定的类型42.在C中,“abc”属于哪种表达式?【】A)关系B)赋值C)逻辑D)非法43.以下不合法的C表达式是【】A)10||8B)12==9+1C)++5D)x!=y44.给定以下程序段:intn=10;while(n6){n--;printf(“%3d”,n);}以上程序段输出结果是【】A)1098B)987C)10987D)987645.若i,j已定义为int型,则以下程序段中内循环总的执行次数是【】for(i=5;i0;i--)for(j=1;j6;j++){……}A)30B)24C)25D)2046.若已定义:float*p,m=3.14159;则使p指向m正确的赋值语句是【】A)p=m;B)p=&m;C)*p=m;D)*p=&m;47.若已定义:chars[10];则下面表达式中不能作为s[1]地址的是【】6A)s++B)s+1C)&s[0]+1D)&s[1]48.已知:inta=3,b=5,t;要将a和b中的数值进行交换,错误..的程序段是【】A.a=a+b;b=a-b;a=a-b;B.t=a;a=b;b=t;C.t=a;b=a;a=t;D.t=b;b=a;a=t;49.关于C程序中的#includemath.h,错误..的描述是【】A.它是C语言的预编译命令B.在程序中该行尾部不需要分号C.用于将math.h包含进来D.math.h是一个函数50.下列C程序段的输出结果是【】inta=0;switch(a){case0:printf(“a=0”);case1:printf(“a=1”);default:printf(“default”);}A.a=0B.a=0defaultC.a=0a=1defaultD.default51.已知:inta,x,y;有语法错误..的C语句是【】A.while(x)y++;B.while(x+y=0)a++;C.while(xy);D.while(y=5)++x;52.对于do…while()语句,错误..的说法是【】A.用条件控制循环体的重复执行B.循环体至少要执行一次C.循环体有可能一次也不执行D.循环体中可以包含若干条语句53.已知:inta,x,y;有语法错误..的C语句是【】A.while(x)y++;B.while(x+y=0)a++;C.while(xy);D.while(y=5)++x;54.已知:inta[5],*ip=a;利用ip为数组元素a[4]赋值的正确C语句是【】A.scanf(“%d”,ip+3);B.scanf(“%d”,ip+4);C.scanf(“%d”,*(ip+3));D.scanf(“%d”,*(ip+4));55.对于C语句:char*a[2]={“abcd”,“ABCD”};叙述正确的是【】A.a是指针变量B.a是指针数组C.a是数组指针D.a是字符串二、填空题1.函数是C程序的基本构成单位,C程序总是从________开始执行的。2.赋值表达式x*=y+5的另一种书写形式为__________。3.已知a=10,b=20,c=3,则表达式ab||c的值为_________。4.整数m既能被3整除又能被4整除的逻辑表达式为__________。5.若有定义:doublea[10][5];则数组a中行下标最大值为____,列下标最大值为____。6.若有定义:inta[]={1,4,6,5,8,9};则*(a+5)的值为__________。7.设有如下定义inta[5][6],*p;取数组元素a[4][2]的地址放到p中的语句为_________。78.未加特别说明(说明为静态的)的全局变量是外部的,能被其它文件中的函数使用,而在引用它的文件中,需要用关键字_________说明。9.已知a=10,b=20,则表达式!ab的值为___________。10.写出0x1的C逻辑表达式________。11.写出判断字符变量c所存字符是否为字母的逻辑表达式。12.实现变量a和b交换的语句或语句序列是。13.若有定义:inta[10],*p=a;则元素a[5]的值用p表示的形式是__________。14.若有定义:int*p[4];则标识符p表示_________
本文标题:C语言程序设计复习练习题
链接地址:https://www.777doc.com/doc-2908138 .html