第一范文网 - 专业文章范例文档资料分享平台

C语言练习题3

来源:用户分享 时间:2025/5/18 14:53:05 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

一、单项选择题(每空1分,共25分,请将答案填入表格) 1.以下叙述错误的是 ___ 。

A) 一个C源程序可由一个或多个函数组成 B) 一个C源程序必须包含一个main函数 C) C程序的基本组成单位是函数

D) 在C程序中,注释说明只能位于一条语句的后面 2.C语言中运算对象必须是整型的运算符是 ___ 。

A) %= B) / C) = D) 〈= 3.有如下程序,程序运行后的输出结果是 ___ 。 main()

{ unsigned int x=0xffff; printf(“%u\\n”,x );}

A) -1 B) 65535 C) 32767 D) 0xFFFF 4.若有代数式 (其中e仅代表自然对数的底数,不是变量),则以下能够正确代表该代数式的C语言表达式是 ___ 。 A) sqrt(abs(n^x+e^x)

B) sqrt(fabs(pow(n,x)+pow(x,e))) C) sqrt(fabs(pow(n,x)+exp(x))) D) sqrt(fabs(pow(x,n)+exp(x)))

5.字符串“\\t12\\x42\\\\abcd”的长度是 ___ 。 A) 14 B) 9 C) 15 D)20 6.以下叙述中错误的是 ___ 。

A) 计算机不能直接执行用C语言编写的源程序

B) C语言经C编译程序编译后,生成后缀为.obj的文件是二进制文件 C) 后缀为.obj的文件,经连接后生成后缀为.exe的文件是二进制文件 D) 后缀为.obj和.exe的二进制文件都可以直接运行

7.以下选项中,与k=x++;完全等价的表达式是 ___ 。 A) x=x+1;k=x; B) k=x;x=x+1; C) k=x+1; D) k+=x+1; 8.以下叙述中正确的是 ___ 。

A) break语句只能用于switch 语句中

B) continue语句的作用是:使程序的执行流程跳出包含它的所有循环 C) break语句只能用在循环体内和switch语句体内

D) 在循环体内使用break语句和continue 语句的作用相同 9.判断字符型变量 ch是否为大写英文字母的表达式为 ___ 。 A) ‘A’<=ch<=‘Z’ B) ch>=‘A’&& ch<=‘Z’ C) ch>‘a’&& ch<=‘z’ D) ch>=‘A’|| ch<=‘Z’

10.若表达式(m)? a++:a--, 则表达式m和 ___等价。 A) m==0 B) m!=0 C) m=0 D) m=1 11.设有 int i=010,j=10;

则printf( “%d,%d\\n”,++i,j--);的输出是 _ _。 A) 11,10 B) 9,10 C) 010,9 D)10,9

12.已知w=1,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x)&&(b=y>z) ;

后,a,b的值为 ___ 。

A) 1和1 B) 0和0 C) 4和2 D) 0和2 13.定义如下变量关系,则下面语句的输出结果是_________。 int i;

int x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(\A) 1 5 9 B) 1 2 3 C) 3 5 7 D) 3 2 1

14.已知数组float b[3][2];该数组行下标的范围是________。 A) 1—3 B) 0—3 C) 1—2 D) 0—2

15.下列语句中,正确的是 ___ 。 A) #define PI=3.14159 B) include “stdio.h” C) define M 3 D) #define PI 3.14159

16.有如下程序, 该程序段的输出结果是 ___ 。 void main(void) { int n=5;

while(n>2) { n--; printf(“%d”,n);}

} A) 543 B)432 C)4321 D)5432

17.下列四种数组定义,合法的数组定义是 ___ 。 A) char a[ ]=\C) char a=\

18.设p1和p2均为指向int型的指针变量, k为int型变量,下列不正确的赋值语句是 ___ 。 A)k=*p1+*p2; B)k=*p1*(*p2) C)p2=k D)p1=p2

19.有如下程序 ,该程序的输出结果是 ___ 。 void main(void)

{ char s[]=“ABCD”,*p; for( p=s+1;p<=s+3;p++)

printf(“%c\\n”,*p); } A) ABC B)A C)B D)BCD BC B C CD C C D D

20.对于C程序的函数,下列叙述中正确的是 ___ 。 A) 函数的定义不能嵌套,但函数调用可以嵌套 B) 函数的定义可以嵌套,但函数调用不能嵌套 C) 函数的定义和调用均可以嵌套 D) 函数的定义和调用均不能嵌套

21.设x为整型变量, p是指向整型的指针变量, 则下列赋值表达式正确的是____ 。 A) p=&x B) p=x C) *p=&x D) *p=*x

22.函数定义时,形参是整型变量,则函数调用时,实参不可以是________。 A) 整型常量 B) 字符型常量 C) 数组名 D) 整型表达式 23. 以下程序的输出结果是________。 void main(void)

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

printf(“%d\\n”,*p+*q); }

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

24.设有如下定义,若有p=&ab;,则对ab中成员项的正确引用是________。 struct ss

{ int a; float b; }ab,*p; A) (*p).ab.a B) p->a C) p->ab.a D) p.ab.a

25. 若要对E盘上的一个非空文件“w1.dat”进行修改,正确的打开语句是________。 A) fp=fopen(“w1.dat”,“r+”); B) fp=fopen(“w1.dat”, “w+”); C) fp=fopen(“E:\\\\w1.dat”,“r+”); D) fp=fopen(“E:\\\\w1.dat”,“w+”);

二、填空题(每空1分,共15分,请将答案填入表格)

1.若s是int型变量,且s=7,则表达式: s/2+(s+1)%2 的值为_________。2.C语言中,以 ___打头的int常数是十六进制。 3.有说明语句char s=‘\\102’; S包含了_____个字符。 4.有数学表达式sinx+ -6x,

写出其对应的C语言的表达式 ____________ _____。

5.有定义语句:int a[][3]={ {0},{1},{2} }; 则数组元素a[1][2]的值是 。 6.若程序中使用了函数strlen(),则必须包含的头文件名为____________。 7.有如下程序,该程序的输出结果是 。 void main(void) {

int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++;

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

printf(\}

8. 若a函数中调用了b函数,而b函数又调用了a函数, 这种调用称为_______调用。

9.函数调用时,若形参和实参均为数组名时,传递方式为 ____ ____。

10.若有以下定义语句,则输出的结果是_____________。 char s1[ ]=“abcdef”, *s2=“1234”;

printf(“%d\\n”, strlen(strcpy(s1,s2))); 11.若宏定义为:#define y(x) 2+x 则表达式a=4+3*y(2)的值为 。 12.设有以下语句:

static int a[4][2]={1,2,3,4,5,6,7,8}; int (*p)[2]; p=a;

则 *(*(p+2)+1)的值为 。

13.在turbo C中,int型数据占2字节,则定义 struct node {

char x[10]; int y; union {

float a; long b; }ab; }t;

后,sizeof(t)= 。

14.设有一个名为“ww1.c”的C程序, 其主函数为 main(int argc,char *argv[]),如果在执行时,输入的命令行为:cc↙

则形式参数argc的值是______。

15. 执行下列程序段后,(**q-1)的值为 ____________。 int a,*p,**q; a=100; p=&a; q=&p;

三、程序分析题(每小题5分,共30分,请将答案填入表格) 1.#include void main(void) {

int a=10,b=11; int c=0,d=0;

printf(\ printf(\ printf(\ printf(\ printf(\ }

要求注明输出格式!

2. #include void main(void) {

int i,j;

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

{

for(j=i;j<4;j++)

printf(“%d+%d=%d ”,i,j,i+j);

printf(“\\n”);

aa bb ww1

搜索更多关于: C语言练习题3 的文档
C语言练习题3.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4g6w201vyz47hq710elp_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top