C语言程序设计复习习题

2020-03-26 19:29

一、判断题

使用循环的嵌套结构时,外层循环应\完全包含\内层循环,不能发生交叉. ( 对 ) 一个函数由两部分组成:函数首部和函数体. ( 对 ) 语句 printf(\输出为 0.333333. ( 错 ) 在for循环中,循环变量只能是整型或字符型的. ( 错 ) C程序中以#include和#define开始的程序行均不是C语句. ( 对 )

while循环结构的特点是\先判断后执行\如果表达式的值一开始就为\假\循环体一次也不执行.( 对) 当数组被说明为静态(static)类别时,无论是否显式给出初值,数组元素都将有确定的值. ( 宏不存在类型问题,宏名无类型,它的参数也无类型. ( 对 ) 进行宏定义时,宏名必须使用大写字母表示. ( 错 ) 若a=3,b=2,c=1则关系表达式\的值为\真\对 ) 移动指针时,不允许加上或减去一个非整数. ( ) 已知: int t=0; while (t=1){...} 该循环一次也不执行. ( 错 ) 在for循环中,循环变量只能增加,不能减少. ( 错 ) a=(b=4)+(c=6) 是一个合法的赋值表达式. ( 对 )

for( ; ; )语句 相当于 while(1)语句. ( 对 )main函数由用户定义,并可以被其他函数调用. ( 错 ) 用typedef可以声明各种类型名,也有可以用来定义变量. ( ) 在C语言中允许函数递归调用. ( 对 ) 在循环体内使用break语句或continue语句的作用相同. ( 错 ) 指针不允许进行乘、除运算. ( ) break语句用于结束整个循环,不再继续判断执行循环的条件是否成立. ( 对 ) C语言规定,实参变量对形参变量的数据传递是单向的\值传递\对 ) 参加位运算的数据可以是任何类型的数据. ( 错 )

程序段:if(strl>str2)printf(\表示输出较大字符串. 可以将一个结构体变量作为一个整体进行输入和输出. ( ) 利用scanf函数可以输入带空格的字符串. ( 错 ) 带参数的宏中的形参要定义其类型. ( 错 ) 共同体变量所占的内存长度等于最长的成员的长度. ( ) 设有定义int *p[4]; 其中的p是指向一维数组的指针变量. ( ) 数据输出时,凡是打印出来的数字都是准确的. ( 错 ) 在switch语句中,无论如何default后面的语句都要执行一次. ( 错 ) 在一个文件中定义的全局变量的作用域为本程序的全部范围. ( ) do-while循环中,根据情况可以省略while. ( 错 ) printf(\中的\代表输出一个负数. ( 错 ) 如果对数组不赋初值,则数组元素取随机值. ( 错 ) 若有\则\输出的值为 -4. ( 错 ) 数组的指针是指数组的起始地址,数组元素的指针是数组元素的地址. ( ) 数组名的规定与变量名不相同. ( ) 数组元素的值可以使用赋值语句或输入函数进行赋值,但占用运行时间. ( 对 ) 在循环语句中,for循环是当型循环. ( 对 ) 在循环语句中,while语句与do-while语句完全等价. ( 错 ) #include命令可以包含一个有函数定义的C语言源程序文件. ( 对 )

对 ) 错 ) (C语言提供\位运算\功能,因此C语言属于低级语言. ( 错 ) C语言中所有运算符的结合方向是\自左向右\的. ( 对)

在对一维数组初始化时,数组的长度可以省略,系统会自动按初值的个数分配存储空间.(对 ) continue作用为终止循环而执行循环后面的语句. ( 对 ) C语言中可以用字符串常量来初始化字符数组. ( 错) while循环最少执行1次. ( 错) 当形参是变量时,实参与它所对应的形参占用不同的存储单元. ( 对 ) 共用体变量所占的内存长度等于最长的成员的长度. ( ) 在C语言中,形式参数的作用域只是局限于所在函数. ( 对 ) 在Turbo C中,此定义和语句是合法的:enum aa{ a=5,b,c}bb;bb=(enum aa)5;( ) 在一个文件中定义的全局变量的作用域为本程序的全部范围. ( ) C语言的函数在形式上必须要有参数. ( ) for语句中的表达式1,表达式2,表达式3均可以省略,并且分号也可以省略. ( 错 ) 函数调用语句func((expl,exp2),(exp3,exp4,exp5));含有实参的个数为 5. ( 错 ) 函数值类型与程序中返回值类型出现矛盾时,以函数值类型为准. ( 对 ) 如果要保留某位只需和0进行按位或运算. ( ) 如果将一个位清零,就让这位和0进行按位或(|)运算,即可达到清零目的. ( ) 在嵌套的if语句中,else应与第一个if语句配对. ( 错 ) 整型常量-012表示一个负的八进制数12,也就是十进制数-10. (错)

break语句不能用于循环语句和switch语句之外的任何其他语句中. (对 ) C语言对文件的处理方法有缓冲文件系统和非缓冲文件系统. ( 对 ) C语言中文件的存取方式可以是顺序存取,也可以是随机存取. (对 )

定义二维数组时,若对全部元素都赋初值,则第一维的长度不能省,但第二维的长度可以不指定. ( 宏替换只不过是字符替代而已. ( 错 ) 在C语言中,数组元素的下标是整型常量或整型变量,并且下标默认从1开始. ( 错 ) 调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指变量的值. ( ) 调用函数时,实参与形参的类型必须一致. ( 错 )

定义二维数组时,若对全部元素都赋初值,则第一维的长度不能省,但第二维的长度可以不指定. ( 分号是语句的必要组成部分,所以函数首部的后面和编译预处理的后面都得加分号. ( 错 ) 宏替换占运行时间. ( 错 ) 嵌套的循环提倡使用缩进式书写格式,以增加程序的可读性. ( 对 ) 在switch语句中,\常量表达式:\只起语句标号作用. ( 对 ) 在编译时,对数据类型和变量都分配空间. ( 对 ) C语言中同一数组中的每一个数组元素必须属于同一数据类型. ( 对 ) 多分支选择结构只能通过switch语句来实现. ( 错 ) do-while语句中的语句可以一次也不执行. ( 错 ) 宏定义不是C语句. ( 对 ) 下面的输入语句是否合理:scanf(\错 ) 一个函数返回值的类型是由return语句中的表达式类型决定. ( )

若有以下的数组定义:char x[]=\则x数组和y数组长度相同.( ) 一个C程序可以由若干个源程序文件(分别进行编译的文件模块)组成. ( 对 ) 在C语言的函数中,最好使用全局变量. ( 错 ) 在初始化数组时,若数组长度小于初值的个数,则会产生编译错误. ( 对 ) 在嵌套的if语句中,else应与它上面的最近的且未曾配对的if语句配对. ( 对 ) 字符串\的长度是13. ( 错 ) 在C语言中以源文件而不是以函数为单位进行编译. ( 错 )

) ) 在if语句中,条件判断表达式可以不用括号括起来. ( 错) 在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量. ( )

二、选择题 有以下函数

int fun(char *s) { char *t=s; while(*t) ++t; return(t-s); }

该函数的功能是( A ).

A.比较两个字符串的大小 B.计算s所指字符串占用内存字节的个数 C.计算s所指字符串的长度 D.将s所指字符串复制到字符串t中 以下程序的输出结果是(B ).

int f(void)

{ static int i=0; int s=1; s+=i; i++; return s; }

int main(void) { int i,a=0;

for(i=0;i<5;i++)a+=f(); printf(\ return 0; }

A.20 B.24 C.25 D.15 有下面程序段

#include \int main(void)

{ char a[3][20]={{\ char k[100]={0},*p=k; int i;

for(i=0;i<3;i++)

{ p=strcat(p,a[i]);} i=strlen(p);

printf(\ return 0; }

则程序段的输出结果是( ).

A.18 B.19 C.20 D.21 有以下程序

#include \int main(void)

{ char p[]={'a', 'b', 'c'},q[10]={ 'a', 'b', 'c'}; printf(\

return 0; }

以下叙述中正确的是( ).

A.在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3 B.由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3 C.由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3 D.由于p和q数组中都没有字符串结束符,故长度都不能确定 有以下程序

#include \int main(void)

{ char p[20]={'a', 'b', 'c', 'd'}, q[]=\ strcpy(p+strlen(q), r); strcat(p, q); printf(\ return 0; }

程序运行后的输出结果是( ).

A.209 B.99 C.2011 D.1111

下列二维数组初始化语句中,正确且与语句float a[][3]={0,3,8,0,9};等价的是( ).

A.float a[2][]={{0,3,8},{0,9}}; B.float a[][3]={0,3,8,0,9,0}; C.float a[][3]={{0,3},{8,0},{9,0}}; D.float a[2][]={{0,3,8},{0,9,0}}; 下面程序的输出结果是( ).

int main(void)

{ int a[]={1,2,3,4,5,6,7,8,9,0},*p; p=a;

printf(\ return 0; }

A.0 B.1 C.10 D.9 下面程序的运行结果是( ).

int main(void)

{ static char a[]=\ char *p1,*p2;int k; p1=a; p2=b;

for(k=0; k<=7; k++) if(*(p1+k)==*(p2+k)) printf(\return 0; }

A.gae B.ga C.Language D.有语法错 以下数组定义中不正确的是( ).

A.int a[2][3]; B.int b[][3]={0,1,2,3,4,5};

C.int c[100][100]={0}; D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}}; 以下程序段的输出结果是( ).

int a=1234;

printf(\

A.12 B.34 C.1234 D.提示出错、无结果

以下程序输出结果是( )

int main(void) { int a=5,b=4;

printf(\ return 0; }

A.9 B.1 C.10 下面的表达式while(!x)中的表达式 !x 与下面条件( )等价.

A.x==0 B.x==1 C.x==0||x==1 有如下程序:

int main(void) { int x=1,a=0,b=0; switch(x)

{ case 0: b++; case 1: a++;

case 2: a++;b++; }

printf(\ return 0; }

该程序的输出结果是( ).

A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 执行下列程序时输入:123<空格>456<空格>789<回车> 输出结果是( ).

int main(void)

{ char s[100]; int c, i; scanf(\ scanf(\ scanf(\

printf(\ return 0; }

A.123,456,789 B.1,456,789 C.1,23,456,789 以下程序的输出结果是( ).

int main(void) { int a,i;a=0; for(i=1;i<5;i++) { switch(i) { case 0:

case 3:a+=2; case 1:

case 2:a+=3; default:a+=5; } }

printf(\return 0;

D.无法确定 D.x!=0 D.a=2,b=2 D.1,23,456


C语言程序设计复习习题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:行政执法案卷评查计分表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: