最新C语言复习题2.docx

上传人:b****5 文档编号:6282424 上传时间:2023-01-05 格式:DOCX 页数:27 大小:48.91KB
下载 相关 举报
最新C语言复习题2.docx_第1页
第1页 / 共27页
最新C语言复习题2.docx_第2页
第2页 / 共27页
最新C语言复习题2.docx_第3页
第3页 / 共27页
最新C语言复习题2.docx_第4页
第4页 / 共27页
最新C语言复习题2.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

最新C语言复习题2.docx

《最新C语言复习题2.docx》由会员分享,可在线阅读,更多相关《最新C语言复习题2.docx(27页珍藏版)》请在冰豆网上搜索。

最新C语言复习题2.docx

最新C语言复习题2

题型:

●选择题(20题×2′=40分)

●填空题(15空×2′=30分)

●编程题:

(4题共30分)

红色为参考解答

一、选择题

(1)以下叙述中正确的是()C

A)C语言程序将从源程序中第一个函数开始执行。

B)可以由在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行。

C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束。

D)main可以作为用户标识符,用户可以命名任意一个函数作为主函数。

(2)若有定义语句:

chars[10]=”1234567\0\0”;则strlen(s)的值是()A

A)7B)8C)9D)10

(3)若有定义:

floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()B

A)switch(x)B)switch((int)x)

{case1.0:

printf("*\n");{case1:

printf("*\n");

case2.0:

printf("**\n");}case2:

printf("**\n");}

C)switch(a+b);D)switch(a+b)

{case1:

printf("*\n");{case1:

printf("*\n");

case2+1:

printf("**\n");}casec:

printf("**\n");}

(4)有以下程序D

voidmain()

{

int a[]={0,2,4,6,8}, *p=a, *q=p+3;

printf("%d\n", *p + *q);

}

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

 A)10 B)4 C)8 D)6

(5)若有定义:

intx=0,*p=&x;,则语句printf("%d\n",*p);的输出结果是()B

A)随机值B)0C)x的地址D)p的地址

(6)下列叙述中错误的是()A

A)一个C语言程序可以包含多个main函数

B)C程序可以由多个程序文件组成

C)C程序可以由一个或多个函数组成

D)在C程序的函数中不能定义另一个函数

A)and_2007B)abcC)intD)Double

(7)设有intx=11;则表达式x%5的值是()A

A)1B)2C)3D)4

(8)以下的for循环()C

for(x=0;x<10;x+=2);

A)是无限循环B)循环次数不定C)执行5次D)执行4次

(9)以下错误的定义语句是()C

A)intx[][3]={{0},{1},{1,2,3}};

B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3}};

C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D)intx[][3]={1,2,3,4};

(10)C语言中while和do-while循环的主要区别是().A

A)do-while的循环体至少无条件执行一次

B)while的循环控制条件比的循环控制条件严格

C)do-while允许从外部转到循环体内

D)do-while的循环体不能是复合语句

(11)对于基类型相同的两个指针变量之间,不能进行的运算是()A

A)

(12)设有定义:

int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是()A

 A)*p=*q; B)p=q; C)*p=&n1; D)p=*q;

(13)以下叙述错误的是()D

A)用户定义的函数中可以没有return语句

B)用户定义的函数中可以有多个return语句,一次调用可以返回多个值

C)用户定义的函数中若没有return语句,则应当定义函数的类型为void类型

D)函数的return语句中可以没有表达式

(14)有以下程序C

#include

intfun(intx,inty)

{

if(x>y)returnx;

elsereturny;

}

voidmain()

{

int a=4,b=5;

printf("%d\n",fun(a,b));

}

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

 A)3 B)4 C)5 D)6

(15)以下叙述中错误的是()D

A)在程序中凡是以”#”开始的代码行都是预处理指令行

B)预处理指令行的最后不能以分号表示结束

C)#defineMAX是合法的宏定义指令行

D)C程序对预处理指令行的处理是在程序执行的过程中进行的

(16)按照C语言的用户标识符命名规则,不能出现在标识符中的是()D

A)字母  B)数字  C)下划线  D)连接符

(17)若有定义语句inta[3][2];按在内存中的存放顺序,a数组的第3个元素(a[0][0]是第一个元素)是()A

A)a[1][0]B)a[1][1]C)a[0][0]D)a[0][1]

(18)以下不合法的标识符是()A

A)for  B)a_b  C)print  D)x1

(19)若函数中有定义语句:

intk;,则()B

A)系统将自动给k赋初值0B)这时k中的值无定义

C)系统将自动给k赋初值-1D)这时k中无任何值

(20)以下叙述中正确的是()D

A)函数的定义可以嵌套,但函数的调用不可以嵌套。

B)函数的定义不可以嵌套,但函数的调用可以嵌套。

C)函数的定义和调用都不可以嵌套。

D)函数的定义和调用都可以嵌套。

(21)下面关于标识符的叙述不正确的是()B

 A)标识符中可以有数字B)关键字可以做标识符 

C)标识符中可以有大写字母D)标识符中可以有下划线

(22)以下关于字符串的叙述中正确的是()B

A)C语言中有字符串常量和变量

B)C语言中没有字符串变量

C)可以用关系运算符对字符串大小进行比较

D)所有字符串末尾都有结束标志

(23)若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()D

A)函数的实参和其对应的形参共占同一存储单元

B)形参只是形式上的存在,不占用具体存储单元

C)同名的实参和形参占同一存储单元

D)函数的形参和实参分别占用不同的存储单元

(24)以下不合法的标识符是()C

A)j2_keyB)IntC)4dD)_8_

(25)设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是()D

A)3B)0C)9D)–12

(26)在C程序中,若对函数类型未加说明,则函数的隐含类型为()。

A

A)intB)doubleC)voidD)char

(27)设变量定义为inta,b;,执行下列语句时,输入(),则a和b的值都是10。

D

scanf("a=%d,b=%d",&a,&b);

A)1010B)10,10C)a=10b=10D)a=10,b=10

(28)设变量定义为inta[4];,则表达式()不符合C语言语法。

D

A)*aB)a[0]C)aD)a++

(29)下列程序输出结果是()C

#include

voidmain()

{

intk=5;

k--;

printf("%d",++k);

}

A)3B)4C)5D)6

(30)有以下程序A

#include

voidmain()

{

intx,y,z;

x=y=1;

z=x++,y++;

printf("%d,%d",x,y);

}

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

A)2,2B)2,3C)3,2D)1,2

(31)以下能正确定义字符串的语句是()D

A)charstr=”kx43”;B)charstr=”;

C)charstr[]={‘\064’};D)charstr[]=”\0”;

(32)已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中的大写字母转换为小写字母的语句是()D

A)c=(c-‘A’)%26+’a’;B)c=c+32;

C)c=c-‘A’+’a’;D)c=(‘A’+c)%26-‘a’;

(33)下列程序段的输出结果是()C

#include

voidmain()

{

intt=1,i=5;

for(;i>=0;i--)

t*=i;

printf("%d\n",t);

}

A)5B)120C)0D)1

(34).执行以下程序后,j的值是多少()A

#include

main()

{

inti,j=0;

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

{

if(i%2==0)continue;

j++;

}

printf("%d\n",j);

}

A)1  B)2  C)3  D)4

(35)在C语言中,函数返回值的类型最终取决于()A

A)函数定义时在函数首部所说明的函数类型

B)return语句中表达式值的类型

C)调用函数时主调函数所传递的实参类型

D)形式参数的类型

(36)设有以下语句C

typedefstructTT

{

charc;

inta[4];

}CIN;

则下列叙述正确的是()

A)可以用TT定义结构体变量  B)TT是struct类型的变量

C)可以用CIN定义结构体变量 D)CIN是structTT类型的变量

(37)下列程序输出结果是()C

#include

voidmain()

{

intk=5;

printf("%d",k++);

}

A)3B)4C)5D)6

(38)若变量已正确定义,语句if(a>b)k=0;elsek=1;和()等价。

C

A)k=(a>b)?

1:

0;B)k=a>b;

C)k=a<=b;D)a<=b?

0:

1;

(39).执行以下程序后,j的值是多少()A

#include

main()

{

inti,j=0;

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

{

if(i%2==0)continue;

j++;

}

printf("%d\n",j);

}

A)1  B)2  C)3  D)4

(40)有以下程序B

voidfun(int*a,int*b)

{a=b;(*a)++;}

main()

{inta=3,b=4,*p1,*p2;

p1=&a;p2=&b;

fun(p1,p2);

printf(“%d%d\n”,a,b);

}

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

A)34B)35C)44D)45

(41)表达式3.6-5/2+1.2+5%2的值是()D

A)4.3B)4.8C)3.3D)3.8

(42)下列程序输出结果是()A

#include

voidmain()

{

intk=5;

while(--k)

printf("%d",k-=3);

printf("\n");

}

A)1B)521C)52-1D)41

(43)C语言源程序名的后缀是()B

A).exe B).c C).objD).cpp

(44)按照C语言的用户标识符命名规则,不能出现在标识符中的是()D

A)字母  B)数字  C)下划线  D)连接符

(45)有以下程序C

#include

voidmain()

{

inti,s=0,t[]={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

printf("%d\n",s);

}

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

A)45B)20C)25D)36

(46)设有intx=21;则表达式x%5的值是()A

A)1B)2C)3D)4

(47)设有intx=11;则表达式5/2+x%3的值是()C

A)2B)3C)4D)0

(48)有以下程序C

#include

intfun(intx,inty)

{

if(x>y)returnx;

elsereturny;

}

voidmain()

{

int a=4,b=5;

printf("%d\n",fun(a,b));

}

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

 A)3 B)4 C)5 D)6

(49)下列程序输出结果是()C

#include

voidmain()

{

intk=5;

k++;

printf("%d",k++);

}

A)3B)4C)5D)6

(50)若有定义语句inta[3][4];按在内存中的存放顺序,a数组的第8个元素(a[0][0]是第一个元素)是()A

A)a[1][3]B)a[1][4]C)a[0][3]D)a[0][4]

(51)若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是()B

A)□□□1,2,3↙B)1□2□3↙

C)1,□□□2,□□□3↙D)1,2,3↙

(52)以下关于函数的叙述中正确的是()C

A)每个函数都可以被其它函数调用(包括main函数)

B)每个函数都可以单独运行

C)每个函数都可以被单独编译

D)在一个函数内部可以定义另一个函数

(53)若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是()D

A)#defineN10      B)#definen5

inta[N]; inta[2*n];

C)inta[5+5];       D)intn=10,a[n];

           

(54)下列程序段的输出结果是()A

voidfun(int*x,int*y)

{printf(“%d%d”,*x,*y);*x=3;*y=4;}

main()

{intx=1,y=2;

fun(&y,&x);

printf(“%d%d”,x,y);

}

A)2143B)1212C)1234D)2112

(55)以下叙述中正确的是()C

A)C语言程序将从源程序中第一个函数开始执行。

B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行。

C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束。

D)main可以作为用户标识符,用户可以命名任意一个函数作为主函数。

(56)有以下程序A

#include

voidmain()

{

char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};

printf("%d\n",strlen(p[4]));

}

执行后输出结果是()

A)2B)3C)4D)5

(57)C语言源程序名的后缀是()B

A).exe B).c C).objD).cpp

(58)有以下程序段C

intk=0;

while(k=1)k++;

while循环执行的次数是()

A)无限次B)有语法错,不能执行 C)一次也不执行D)执行1次

(59)当调用函数时,实参是一个数组名,则向函数传送的是()B

A)数组的长度B)数组的首地址

C)数组每一个元素的地址D)数组每个元素中的值

(60)下列程序输出结果是()D

#include

voidmain()

{

intk=5;

k++;

printf("%d",k++);

}

A)3B)4C)5D)6

(61)有以下程序B

#include

intf(intx,inty)

{

return((y-x)*x);

}

voidmain()

{

inta=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

printf(“%d\n”,d);

}

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

A)10B)9C)8D)7

(62)下面关于标识符的叙述不正确的是()B

 A)标识符中可以有数字B)关键字可以做标识符 

C)标识符中可以有大写字母D)标识符中可以有下划线

(63)有以下程序D

#include

voidmain()

{

inta=1,b=0;

printf("%d,",b=a+b);

printf("%d",a=2*b);

}

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

A)0,0B)1,0C)3,2D)1,2

(64)设变量a、b、c、d和y都已正确定义并赋值。

若有以下if语句

if(a

if(c==d)y=0;

elsey=1;该语句所表示的含义是()C

A)

B)

C)

D)

(65)若有定义语句:

intm[]={5,4,3,2,1},i=4;则下面对m数组元素的引用中错误的是()C

A)m[i]B)m[2*2]C)m[m[0]]D)m[m[i]]

(66)有以下程序B

#include

intfun(intx,inty)

{

if(x==y)return(x);

elsereturn((x+y)/2);

}

voidmain()

{

inta=4,b=5,c=6;

printf(“%d\n”,fun(2*a,fun(b,c)));

}

程序运行后的输出结果是

A)3B)6C)8D)12

填空题

(1)结构化程序设计中的三种基本结构是顺序结构、选择结构和()。

循环结构

(2)当定义一个无返回值函数时,则函数的返回值类型是()。

int

(3)在C语言中整数可用()进制数、十进制数、十六进制数三种数制表示。

(4)若有chara[3]="ab";则*a=(),*(a+2)=()。

a\0

(5)设y是int型变量,请写出判断y为偶数的关系表达式()y%2==0

(6)已知a=3,b=2,则表达式a*=b+8的值是()。

30

(7)C语言中的实型变量分为两种类型,分别是()和双精度。

单精度

(8)在C程序中,可用()语句结束本次循环,跳过循环体重下面尚未执行的语句,提早进入下一次的循环。

continue

(9)当a=5,b=4,c=2时,表达式a>b!

=c的值是()。

1

(10)设有定义语句:

inta[3][4]={{1,2},{0},{4,6,8,9}},则数组元素a[2][1]的值是()。

6

(11)C程序是由函数构成的,一个C源程序至少包含一个()函数。

main

(12)设有说明语句inta[3][4],则数组a中包括了()个数据元素12

(13)a数组定义如下:

chara[3];则a数组中可用最小下标是(),最大下标是()。

02

(14)表达式strlen(”hello”)的值是()。

5

(15)在循环语句中,break语句的作用是()。

退出循环

(16)C语言源程序的基本单位是()。

函数

(17)表示“x≥y≥z”的C表达式是()。

x>=y&&y>=z

(18)在C语言中,表示逻辑“真”值用()。

1

(19)若有inta[3][2]={{1},{3,2},{4,5}};,则a[1][1]的值是(),a[2][0]的值是()24

(20))以下程序运行后的输出结果是()。

34

#include

voidmain()

{inti,j;

for(i=6;i>3;i--)j=i;

printf(”%d%d\n”,i,j);

}

(21)有以下程序6

 #include

 #definef(x)x*x

 main()

 {inta=2,s;

  s=f(a+1);

  printf(“%d\n’,s);

 }

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

(22)下面程序的功能是计算s的值:

s=1!

+2!

+3!

+……+n!

其中n由键盘敲入,n<30,请填空补充完整。

#include

voidmain()

{

longs,t;

inti,n;

printf("inputn(n<30):

");

scanf("%d",&n);

();s=0;

();t=1;

for(i=1;i<=n;i++)

{

();t=t*i;

s+=t;

}

printf("1!

+2!

+3!

+…+%d!

=%ld\n",n,s);

}

(23)以下程序的运行结果是()789

intf(inta)

{intb=0;

staticintc=3;

b=b+1;

c=c+1;

return(a+b+c);

}

voidmain()

{inta=2,i;

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

printf(“%d”,f(a));

}

(24)求e的近似值,直到某一项的值小于或等于10-7为止。

将下列程序补充完整。

#include

voidmain()

{

intn;

doublet,sum,m;

n=1;

();sum=1;

m=1;

do

{

();t=1/m;

sum+=t;

n++;

();m=m*n;

}

while(t>1e-7);

printf("e=%f\n",sum);

}

(25)有以下程序

#include

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1