1、C语言复习题 2一、填空:1.整型数据变量声明中所使用的关键字是 int 。2.设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 2.5 。3.printf(“My age is %d.”, age); 函数中,使用%d表示输出的是 整型 类型的数据。4.每个源程序有且只有一个 主 函数,系统总是从该函数开始执行C语言程序。5.设 int x=5,y,z;执行y=z=x;x=y=z;后,变量x的结果是 1 。6.C 语言中,数组在内存中占一片 的存储区,由 代表它的首地址。数组名是一个 ,不能对它进行赋值运算。7.函数的参数为
2、char *类型时,形参与实参结合的传递方式为 。8.C程序编译、连接后生成 程序。9.当a=10,b=4,c=2时,表达式f=abc的值是 。10.字符串数组与字符数组的在长度至少 一个元素。11.若函数的形式参数是指针类型,则实参可以是 或 。12.如定义语句为 char a = windows,b = 7;,语句 printf(%s,strcat(a,b);的输出结果为 。13.请在下面的程序段中填写正确的格式说明符:int main(void) float salary; printf(“Enter your desired monthly salary: .”, salary);14
3、.C程序编译后生成 程序。15.C 语言的标识符只能由 、数字和 三种字符组成。16.设有定义 int y; ,分别写出描述“y是偶数”的表达式 ,“y是奇数”的表达式 。17.C语言没有字义专门的字符串变量类型,而是把它存储在 数组中。18.字符串常量22a,0n的长度是 。19.字符串存储到数组中时,在数组的最后将增加一个标记字符串结束的字符 。20.设有定义语句 static int a34 =1,2,3; 则 a10值为 ,a11 值为 ,a21的值为 。21.假设int a=7; 执行语句a+=a-=a*a; 后,a的值是 。22.若自定义函数要求返回一个值,则应在该函数体中有一条
4、语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个 类型说明符23.若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 。24.设 int x=10, y, z; 执行y=z=x; x=y= =z;后,变量x的结果是 。25.求解赋值表达式 a=(b=10)%(c=6),则“表达式值、a、b、c ”的值依次为 , , , 。26.求解逗号表达式 (x=a=3,6*a )后,“表达式值、x、a” 的值依次为 , , 。27.变量的指针是指该变量的 。28.C语言中,逻辑值“假”用 表示,逻辑“真”用1表示。29.若有定义:int a=1,
5、3,5,7,9,11,13,*p=a;则*(p+2)的值是 ,为什么 。30.判断变量 a、b 的值均不为 0 的逻辑表达式为 。31.C语言的变量名可以使用的字符包括大写字母、小写字母、 和下划线,而且必须以 和 开头。32.若有定义:char a=a,b, c, d, e, f, g,*p=a;则*(p+2)的值是 。33.C 语言中,数组的各元素必须具有相同的 ,元素的下标下限为 ,下标必须是正整数、0、或者 。34.在C语言中,在内存中存放二维数组元素的顺序是 。35.假设在一维数组a20中,元素a4的指针为p,那么p+4所指向的数据元素是 。36.下面程序块执行完成后,m的值是 。
6、m=1; n=263; dom*=n%10;n/=10; while(n);37.标准C语言程序总是从 开始执行的。38.执行语句for(i=1;i+4;);后,变量i的值是 ,如果语句for(i=1;+i=0);49.已知:int a23=1,3,8,则a11的值为 。 50.字符串常量“22a,0n”的长度是 。51.如果一个函数没有返回值,那么该函数的类型为 。52.C语言表达式 5278 的值是 。53.若有定义:char ch;(1)定义指针p,并指向变量ch的语句是 。(2)若已定义char *p;,使指针p指向变量ch的赋值语句是 ; 。(3)在(1)的基础上,通过指针p实现变量
7、ch读入字符的scanf调用语句是 。(4)在(1)的基础上,通过指针p给变量ch赋字符a的语句是 。(5)在(1)的基础上,通过指针p用格式输出函数printf输出ch中字符的语句是 。54.输入一个字符,判断该字符是数字、字母、空格还是其他字符。main( ) char ch; ch=getchar(); if( ) printf(It is an English charactern); else if( )printf(It is a digit charactern);else if( )printf(It is a space charactern); printf(It is o
8、ther charactern); 55.search函数的功能是从数组a10中对关键字m进行查找,请填空完成程序,实现功能。#include int search( int a10, int m) int i; for(i=0; i=m; i+) if( ) return i; return -1; void main( ) int a10,m, i, n; for(i=0; i0) i= ; else j=j+1; printf(“i=%4d,j=%4dn”,i,j); 57.编程计算13599的值main() int i, sum = 0;i=1;while ( ) sum = sum
9、+ i; ; printf(sum=%dn, sum);58.有一个一维数组存放10个学生的成绩,用一个函数求平均分、最高分和最低分#include ;void main() float average(float array, int n); float ave, score10; int i; printf(please enter 10 scores:); for(i=0; i10;i+) scanf( ); ave=average(score,10); printf(max=%6.2fn, Max); printf(min=%6.2fn, Min); printf(average=%6
10、.2fn, ave);float average( float array, int n) int i; float aver,sum=array0; ; for(i=1; iMax) Max=arrayi; else if(arrayiMin) Min=arrayi; sum=sum+arrayi; aver=sum/n; return (aver);59.下面程序的功能是在a数组中查找与x值相同的元素所在位置,请填空#include void main() int a10,i,x; printf(“input 10 integers:”);for(i=0;i10;i+) scanf(“%d
11、”,&ai); printf(“input the number you want to find x:”);scanf(“%d”, ); for(i=0;i10;i+)if( )break; if( ) printf(“the pos of x is:%dn”,i); else printf(“can not find x!n”); 60.求一个3*4矩阵中,元素最大值及所在的行号、列号。请填空完成程序,实现功能#include int main() int i,j,row=0,colum=0,max; int a34; for (i=0;i=2;i+) for (j=0;j=3;j+) s
12、canf( ); ; for (i=0;i=2;i+) for (j=0;j=3;j+) if ( ) max=aij; row=i; colum=j; printf(max=%dn,max); printf(row=%dn,row); printf(colum=%dn,colum); return 0;61.用“起泡法”对输入的10个字符排序后按从小到大的次序输出。#define N 10char strN;sort(char strN);void main()int i,flag;for(i=0;i10;i+)scanf(%c,&stri);sort(_ _);for(i=0;iN;i+)
13、printf(%c,stri);printf(n);void sort(char strN) int i,j;char t;for(j=1;jN;j+)for(i=0;i (2) ) t=stri;_;_; 62.下面程序的功能是比较字符数组a和字符数组b中的两个字符串是否相等(比较对应字符,全部相同输出0,如果不同,返回第一个不相同的字符差值,并输出)。#include int main(void)char a100=Hello World!;char b100=Hello Chengdu!; ;/* 完成对应字符的比较,并判定一个字符串是否结束了*/while( ) i+; printf(
14、%dn, ai-bi );return 0;63.程序填空:编程计算135+101的值。#include int main(void) int i, sum = 0; for (i = 1; ; ) sum = sum + i; printf(sum=%dn, sum); return 0;64.编写程序,输入一个数字字符(09)存入变量c,把c转换成它所对应的整数存入n,如:字符0所对应的整数就是0。请填空。#include void main() char c; int n; printf(“please input a char:n”); c = ; n = ; printf(“%c %
15、d”,c,n);65.下面的程序是输出数组中最大元素的下标(p表示最大元素的下标)。#include void main() ; int s=1,-3,0,-9,8,5,-20,3; for(i = 0,p = 0;i sp) ; ;66.以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空.#include int main(int argc, char* argv) float x,amax,amin; scanf(%f,&x); amax=x; amin=x; while( ) if(xamax) amax=x; if( ) ami
16、n=x; scanf(%f,&x); printf(namax=%fnamin=%fn,amax,amin); return 0;二、选择1.若有说明语句“int a5,*p=a;”,则对数组元素的正确引用是 。A.ap B.pa C.*(p+2) D.p+22.在C语言中,以 作为字符串结束标志A.n B. C.0 D.03.下列数据中属于“字符串常量”的是(A )。A.“a” B.ABC C.abc0 D.a4.对二维数组的正确定义是 A.int a =1,2,3,4,5,6; B.int a2 =1,2,3,4,5,6;C.int a 3=1,2,3,4,5,6; D.int a2,3=
17、1,2,3,4,5,6;5.若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。A、a:=b+1 B、a=b=c+2 C、int 18.5%3 D、a=a+7=c+b6.C程序的基本结构单位是:A、文件 B、语句 C、函数 D、表达式7.下面程序段中循环体的执行次数是: int a=10,b=0; dob+=2;a-=2+b; while(a=0);A、1 B、2 C、3 D、48.以下可用作C语言用户合法的标识符的是:A、B.C.Tom B、3a6b C、_6a7b D、ABC9.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&y+z/2的值是:A、6 B、
18、0 C、2 D、110.若有以下程序段int c1=1,c2=2,c3; c3=1.0/c2*c1;,则执行后,c3中的值是( )。A、0 B、0.5 C、1 D、211.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不是0.5的是( )。A、b=1.0/a B、b=(float)(1/a) C、b=1/(float)a D、b=1/(a*1.0)12.已知char x=hello, y=h,e,a,b,e;, 则关于两个数组长度的正确描述是( )。A、相同 B、x大于y C、x小于y D、以上答案都不对13.以下选项中,不能作为合法常量的是( )。A、1.234e04 B、1.234
19、e0.4 C、1.234e+4 D、1.234e014.C语言中运算对象必须是整型的运算符是( )。A、%= B、/ C、= D、=15.以下能够正确定义函数首部的形式是 。A、double fun(int x, int y) B、double fun(int x; int y) C、double fun(int x, int y); D、double fun(int x,y);16.语句a=25.0+60.0*n/scale+2;,如果n=6.0,scale=2.0,则该语句最后的运行结果a值是( )。A、257 B、194.5 C、207.0 D、96.2517.下列关键字,哪个是双精度数
20、据类型的关键字( )。A、int B、float C、double D、char18.若有说明:int a3=1,2,3,4,5,6,7; 则数组a的第一维的大小为: A. 2 B. 3 C. 4 D.无确定值 D) 919.下列哪个是命名正确的变量名( )。 A、7num B、student C、#No D、float20.C语言中规定函数的返回值的类型是由:A、return语句中的表达式类型所决定 B、调用该函数时的主调用函数类型所决定C、调用该函数时系统临时决定 D、在定义该函数时所指定函数类型决定21.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与其
21、配对的是:A、其之后最近的if B、其之前最近的if C、缩排位置相同的if D、同一行上的if22.若有语句int *p,a=4;p=&a,下面均代表地址的一组选项是:A、a,p,*&a B、&*a,&a,*p C、*&p,*p,&a D、&a,&*p,p 23.下列关于C语言的说法错误的是( )。A、C程序的工作过程包括编辑、编译、链接、运行 B、C语言不区分大小写C、C程序中使用数组存储字符串,数组的单元数至少应该比要存储的字符数多1 D、C程序中必须有一个main()函数24.在C语言程序中,表达式5%2的结果是( )。 A、2.5 B、2 C、1 D、325.下列说法错误的是 。A、
22、在C语言中,break语句用于提前终止循环B、在C语言中,continue语句只能用于switch语句和循环语句中C、在C语言中,continue语句用于提前结束本次循环D、在C语言中,break语句只能用于switch语句和循环语句中26.已知:int a=2,b=3;,则执行表达式c=b*=a-1后,变量c的值为: A、5 B、 3 C、2 D、427.在C语言中,以( ) 作为字符串结束标志。A、n B、s C、a D、028.在C语言中对一维整型数组的正确定义为 。 A)int a(10); B)int n=10,an; C)int n;an; D)#define N 10 int a
23、N;29.下面( )表达式的运算结果是4。A、 11/3 B、11.0/3 C、 (float)11/3 D、 (int)(11.0/3+0.5)30.下列数据中属于“字符串常量”的是( )A、“a” B、23 C、abc0 D、a31.语句while(!E);中的表达式!E等价于: A、E=0 B、E!=1 C、E!=0 D、E=132.下面程序的运行情况是: char a3,b=abcde; a=b; printf(%s, a);A、运行后将输出abcde B、运行后将输出ab C、运行后将输出abc D、编译时出错33.假设a=1; b=2; c=2;下面程序段的运行结果是:while(
24、abc) t=a; a=b; b=t; c-; printf(“%d, %d, %d”, a,b,c); A、1,2,0 B、2,1,0 C、1,2,1 D、2,1,134.对于while语句,错误的说法是( )。A、用条件控制循环体的执行次数 B、循环体至少要执行一次C、循环体有可能一次也不执行 D、循环体中可以包含若干条语句35.C语言的if语句中,用作判断条件的表达式为: A、任意表达式 B、关系表达式 C、算术表达式 D、逻辑表达式36.sizeof(float) 是: A、一个整型表达式 B、一个双精度型表达式 C、一种函数调用 D、不合法 37.putchar函数可以向终端输出一个:A、实型变量值 B、字符或字符型变量值 C、整型变量表达式值 D、字符串38.下面语句中,错误的是:A、int i;int *p;p=&i; B、int i,*p;p=&a; C、int i,*p=&a; D、int i,*p;*p=i;39.在说明语句:int *f(); 中,标识符代表的是: 。 A、一个用于指向整型数据的指针变量 B、一个用于指向一维数组的指针 C、一个用于指向函数的指针变量 D、一个返回值为指针型的函数名40.在函数调用时,以下说法正确的是
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1