大连交通大学往年C语言期末复习题

本试卷为大连交通大学往年C语言期末复习题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。

C语言期末复习题

一、理论基础 (共20题,每题1分,共计10分)

(  A  )
1、两个或两个以上模块之间联系的紧密程度称为( )。
A、耦合性
B、内聚性
C、复杂性
D、数据传输特性
(  B  )
2、以下选项中,合法的一组c语言数值常量是________。
A、028
.5e-3
-0xf
B、12.
OXa23
4.5eO
C、.l77
4cl.5
Oabc
D、0x8A
10,000
3.e5
(  D  )
3、表达式3.6-5/2+1.2+5%2的值是________。
A、4.3
B、4.8
C、3.3
D、3.8
(  D  )
4、设有定义:int n=0,*p=&n,**q=&p; 则以下选项中,正确的赋值语句是________。
A、p=1;
B、*q=2;
C、q=p;
D、*p=5;
(  A  )
5、以下不能正确赋值的是______。
A、char s1[10];s1="test";
B、char s2[]={ ’ t ’ , ’ e ’ , ’ s ’ , ’ t ’ }
C、char s3[20]= "test";
D、char s4[4]={ ’ t ’ , ’ e ’ , ’ s ’ , ’ t ’ }
(  B  )
6、有如下程序段 int *p, a=10, b=1; p=&a ; a=*p+b; 执行该程序段后, a 的值为 。
A、12
B、11
C、10
D、编译出错
(  D  )
7、以下叙述中不正确的是________。
A、在C程序中,逗号运算符的优先级最低
B、在C程序中,APH和aph是两个不同的变量
C、若a和b类型相同,在计算赋值表达式a=b后,b中的值将放入a中,而b中的值不变
D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
(  D  )
8、设int a=0; 错误的语句是________。
A、++a;
B、a++;
C、a=-a;
D、(-++a);
(  D  )
9、整型变量x和y的值相等,且为非0值,则以下选项中结果为0的表达式是______。
A、X||Y
B、X|Y
C、X&Y
D、X^Y
(  D  )
10、无符号二进制整数10111转换成十进制整数,其值是________。
A、17
B、19
C、21
D、23
(  C  )
11、以下选项中属于c语言数据类型的是________。
A、复数型
B、逻辑型
C、双精度型
D、集合型
(  B  )
12、设i是int型变量,f是float型变量,用下面的语句给这2个变量输入值。为了将,100和765.12分别赋给i和f,则正确的输入为______。 scanf("i=%d,f=%f",&i,&f);
A、100<空格>765.12<回车>
B、i=100,f=765.12<回车>
C、100<回车>765.12<回车>
D、x=100<回车>y=765.12<回车>
(  A  )
13、设变量 m 为 float 类型,变量 n 为 int 类型,则以下能实现将 m 中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是________。
A、n=m*100+0.5, m=n/100.0
B、m=(m*100+0.5)/100.0
C、n=m/100+0.5, m=n*100.0
D、m=m*100+0.5/100.0
(  D  )
14、可以作为自定义标识符的是________。
A、2x
B、while
C、s&1
D、_2x
(  D  )
15、一个5位的二进制数能够表示的最大值为?
A、63
B、64
C、32
D、31
(  C  )
16、定义float a=8.735,那么printf("%7.2f",a); 的输出结果为
A、7.2
B、8.73
C、【空格】【空格】【空格】8.73
D、【空格】【空格】8.73
(  C  )
17、若变量a,b,t 已正确定义,要将a 和b 中的数进行交换,以下选项中不正确的语句是________。
A、a=a+b ;b=a-b ;a=a-b ;
B、t=a ; a=b;b=t ;
C、a=t ;t=b ;b=a;
D、t=b ;b=a; a=t ;
(  B  )
18、已有定义: int x=3,y=4,z=5;
则表达式 !(x+y)+z-1&&y+z/2 的值是________。
A、0
B、1
C、2
D、-1
(  C  )
19、下列不正确的转义字符是________。
A、\\'
B、\"
C、074'
D、\0'
(  C  )
20、以下选项中合法的用户标识符是________。
A、No-1、abc、sf_02
B、_int、 2xy、count
C、pc、_4866pc、vf_2
D、++c、hj6_d、name

二、控制结构 (共10题,每题1分,共计10分)

(  C  )
1、设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是________。
A、0
B、1
C、2
D、3
(  C  )
2、有以下程序
main( )
{
char k;
int i;
for(i=1;i<3;i++)
{
scanf("%c",&k);
switch(k)
{
case ‘0’: printf("another\n");
case ‘1’: printf("number\n");
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是________。
A、another
number
B、another
number
another
C、another
number
number
D、number
number
(  C  )
3、若所用变量都已正确定义,则在以下选项中,非法的表达式是________。
A、a!=4||b==1
B、'a'%3
C、'a'=1/2
D、'a'+32
(  A  )
4、在c程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,逻辑真和逻辑假可分别表示为
A、1 0
B、0 1
C、非0非0
D、1 1
(  A  )
5、有以下程序:
main()
{
int a=3,b=4,c=5,d=2;
if(a>b) if(b>c) printf("%d",d+++ 1);
else printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是 ______。
A、2
B、3
C、43
D、44
(  B  )
6、有以下程序
#include <stdio.h>
main ()
{
int a = 5, b = 4, c = 3, d = 2;
if (a > b > c)
printf ("%d\n", d);
else if ((c - 1 >= d) == 1)
printf ("%d\n", d + 1);
else
printf ("%d\n", d + 2);
}
执行后输出的结果是________。
A、2
B、3
C、4
D、编译时有错,无结果
(  D  )
7、以下叙述中正确的是________。
A、逻辑"或”(即运算符||)的运算级别比算术运算要高
B、C 语言的关系表达式:0<x<10 完全等价于:(0<x)&&(x<10)
C、逻辑"非”(即运算符!)的运算级别是最低的
D、由&&构成的逻辑表达式与由||构成的逻辑表达式都有“短路”现象
(  D  )
8、在c 的if 语句中,可用作条件的表达式是________。
A、关系表达式
B、逻辑表达式
C、算术表达式
D、任意表达式
(  A  )
9、main()
{int x=1,a=0,b=0;
switch (x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;}
printf("a=%d,b=%d",a,b);}
该程序的输出结果是( )
A、2,1
B、1,1
C、1,0
D、2,2
(  A  )
10、执行下面语句后的输出为____
int i= -1;
if (i < =0)printf("****\n");
else printf("%%%%\n");
A、****
B、%%%%
C、%%%%C
D、有语法错,不能执行

三、循环结构 (共10题,每题1分,共计10分)

(  B  )
1、下述 for 循环语句 。
int i,k;
for(i=0,k=-1;k=1;i++,k++)
printf("* * * *");
A、判断循环结束的条件非法
B、是无限循环
C、只循环一次
D、一次也不循环
(  D  )
2、下面程序的输出结果是 ____________.
main( )
{
int i,k=0, a=0, b=0;
for(i=1;i<=4;i++)
{
k++;
if (k%2==0)
{
a=a+k;
continue;
}
b=b+k;
a=a+k;
}
printf("k=%d a=%d b=%d\n",k,a,b);
}
A、k= 5 a =10 b=4
B、k= 3 a =6 b=4
C、k= 4 a =10 b=3
D、k= 4 a =10 b=4
(  B  )
3、c语言的跳转语句中,对于break和continue说法正确的是________。
A、break语句只应用于循环体中
B、continue语句只应用于循环体中
C、break 是无条件跳转语句,continue不是________。
D、break和continue的跳转范围不够明确,容易产生问题
(  C  )
4、下列关于break语句的描述,不正确的是________。
A、break语句可用在循环体内,它将使执行流程跳出本层循环体
B、break语句可用在switch语句中,它将使执行流程跳出当前switch语句
C、break语句可用在订语句中,它将使执行流程跳出当前if语句
D、break语句在一层循环体中可以出现多次
(  A  )
5、结构化程序设计思想的核心是要求程序只由顺序、循环和______三种结构组成。
A、分支
B、单入
C、单出
D、有规则GOTO
(  D  )
6、程序设计语言中________。
A、while 循环语句的执行效率比do-while 循环语句的执行效率高
B、while 循环语句的循环体执行次数比循环条件的判断次数多1,而do-while 语句的循环体执行次数比循环条件的判断次数少1
C、while 语句的循环体执行次数比循环条件的判断次数少1,而do-while 语句的循环体执行次数比循环条件的判断次数多1
D、while 语句的循环体执行次数比循环条件的判断次数少1,而do-while 语句的循环体执行次数等于循环条件的判断次数
(  D  )
7、下面有关for循环的正确描述是________。
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达式
C、在for循环中,三个表达式都不能省略
D、for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来
(  A  )
8、下列c语言程序段中关于while循环体正确的说法是inti=1;
while(5)
{
i++;
if(i>3)break;
}
A、三次循环
B、四次循环
C、五次循环
D、六次循环
(  A  )
9、设有以下代码其中,循环体 a 与循环体 b 相同,以下叙述正确的是________。
A、循环体 A 与循环体 B 的执行次数相同
B、循环体 A 比循环体 B 的执行次数多一次
C、循环体 A 比循环体 B 的执行次数少一次
D、循环体 A 与循环体 B 的执行次数不确定
(  D  )
10、以下程序段的输出结果为()。
char c[]="abc";
int i=0;
do ;while(c[i++]!='\0');printf("%d",i-1);
A、abc
B、ab
C、2
D、3

四、数组/指针数组 (共10题,每题1分,共计10分)

(  A  )
1、若有定义:"int a[2][3];",则对a数组的第i行第j列元素的正确引用为( )。
A、*(*(a+i)+j)
B、(a+i)[j]
C、*(a+j+j)
D、*(a+i)+j
(  D  )
2、若有如下定义,则________是对数组元素的正确的引用 int a[10], *p ; p=a;
A、*&a[10]
B、a[11]
C、*(p+11)
D、*p
(  C  )
3、设有数组定义:char array[]="student"; 则数组所占的存贮空间为________。
A、6个字节
B、7个字节
C、8个字节
D、9个字节
(  A  )
4、下列描述中正确的是________。
A、标识符首字符的后面可以跟数字
B、标识符不区分大小写
C、复合数据类型变量包括布尔型、字符型和浮点型
D、数组属于基本数据类型
(  D  )
5、若已定义: int a[]= { 0,1,2,3,4,5,6,7,8,9 },*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是________。
A、a[p-a]
B、*(&
C、p
D、a[10]
(  D  )
6、设有以下定义: int a[3][3]= { 1,2,3,4,5,6,7,8,9 }; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。
A、*((*ptr+1)[2])
B、a[2][3]
C、(*ptr+1)+2
D、*(*(a+1)+2)
(  C  )
7、设有数据定义语句"int a[200]; ",下列数组元素引用中下标不越界的是________。
A、a[-1]
B、a[201]
C、a[0]
D、a[200]
(  C  )
8、下列程序段的功能是________。计算数组x中相邻两个元素的和,依次存放到 a 数组中,然后输出a数组。程序段中待填空的(1)和(2)的正确选项是________。int i;
int a[9], x[10];
for(i = 0; i < 10; i++)
{
scanf("%d", &x[i]);
}
for( (1) ; i < 10; i++ )
{
/* 此处待填空(1) */ a[i-1] = x[i] + (2) ;
/* 此处待填空(2) */
}
for(i = 0; i < 9; i++)
{
printf("%d ",a[i]);
}
printf("\n");
A、(1) i = 1 (2) x[i+1]
B、(1) i = 0 (2) x[i-1]
C、(1) i = 1 (2) x[i-1]
D、(1) i = 0 (2) x[i+1]
(  B  )
9、二维数组a有m行n列,则在a[i][j]之前的元素个数为________。
A、j*n+i
B、i*n+j
C、i*n+j-1
D、i*n+j+1
(  D  )
10、若有以下的定义:int t[3][2];
能正确表示t数组元素地址的表达式是________。
A、&t[3][2]
B、t[3]
C、&t[1]
D、t[2]

五、字符串/字符串指针 (共10题,每题1分,共计10分)

(  B  )
1、设有字符串a="he has 钱!",则该字符串的长度为( )。
A、9
B、10
C、11
D、8
(  D  )
2、以下选项中能表示合法常量的是________。
A、整数:1,200
B、实数:1.5E2.0
C、字符斜杠:"\"
D、字符串:"\007"
(  B  )
3、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
A、5
B、4
C、6
D、1
(  C  )
4、下面各语句行中,能正确进行字符串赋值操作的语句是______。
A、char ST[5]={"ABCDE"} ;
B、char S[5]={'A' , 'B' , 'C' , 'D' , 'E'} ;
C、char *S ; S="ABCDE" ;
D、char *S ; scanf ( "%S" , S );
(  D  )
5、下列字符串中,正确的c标识符是________。
A、foo-1
B、2b
C、new
D、256
(  B  )
6、下列关于串的叙述中,哪一条是正确的( )
A、串是由至少1个字符组成的有限序列
B、串中字符的数目就是串的长度
C、空串就是由空格构成的串
D、串只能顺序存储
(  B  )
7、下列选项中,值为1的表达式是________。
A、1-'0'
B、1-'\0'
C、'1'-0
D、'\0','0'
(  D  )
8、以下选项中,合法的 c 语言常量是________。
A、2XY
B、HELLO'
C、"\0.\0
D、1.0
(  C  )
9、判断两个字符串是否相等,正确的表达方式是________。
A、while(s1==s2)
B、while(s1=s2)
C、while(strcmp(s1,s2)==0)
D、while(strcmp(s1,s2)=0)
(  D  )
10、在宏定义#define PI 3.14159中,用宏名代替一个________。
A、常量
B、单精度数
C、双精度数
D、字符串

六、函数/函数指针 (共10题,每题1分,共计10分)

(  A  )
1、在c语言中,函数的数据类型是指( )
A、函数返回值的数据类型
B、函数形参的数据类型
C、调用该函数时的实参的数据类型
D、任意指定的数据类型
(  D  )
2、下列函数原型声明中错误的是________。
A、void Fun(int x=0,int y=0);
B、void Fun(int x,int y);
C、void Fun(int x,int y=0);
D、void Fun(int x=0,int y);
(  C  )
3、下列说法不正确的是________。
A、C语言程序是以函数为基本单位的,整个程序由函数组成
B、C语言程序的一条语句可以写在不同的行上
C、C语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写
D、C语言程序的每个语句都以分号结束
(  A  )
4、下列不属于c语言关键字的选项是________。
A、printf
B、sizeof
C、extern
D、long
(  B  )
5、有以下程序: fun(int x,int y)
{
static int m=0, i=2;
i+=m+1;
m=i+x+y;
return m;
}
main()
{
int j=1,m=1,k;
k=fun(j,m);
printf("%d,"k);
k=fun(j,m);
printf("%d\n",k);
}
执行后的输出结果是________。
A、5,5
B、5,11
C、11,11
D、11,5
(  C  )
6、以下关于宏的叙述中正确的是______。
A、宏名必须用大写字母表示
B、宏定义必须位于源程序中所有语句之前
C、宏替换没有数据类型限制
D、宏调用比函数调用耗费时间
(  D  )
7、c 程序的执行过程在下列说法中,▁▁▁▁▁ 是正确的。
A、C 程序从第一个函数开始执行,直到最后一个函数结束
B、C 程序从第一个函数开始执行,直到主函数结束
C、C 程序从主函数开始执行,直到最后一个函数结束
D、C 程序从主函数开始执行,直到主函数结束
(  A  )
8、以下叙述中正确的是________。
A、int*p1;int**p2;int*p3 都是合法的定义指针变量的语句
B、指针变量只能通过求地址运算符(&)来获得地址值
C、语句 p=NULL;与 p=\0;是等价的语句
D、语句 p=NULL;执行后,指针 p 指向地址为 0 的存储单元
(  B  )
9、以下程序的输出结果为________。
main()
{
int a=1,b=2,c=3,d=4,e=5;
printf("%d\n",func((a+b,b+c,c+a),(d+e)));
}
int func(int x,int y)
{
return(x+y);
}
A、15
B、13
C、9
D、函数调用出错
(  D  )
10、函数调用:strcat(strcpy(str1,str2),str3)的功能是________。
A、将串str1复制到串str2中后再连接到串str3之后
B、将串str1连接到串str2之后再复制到串str3之后
C、将串str2连接到串str1之后再将串str1复制到串str3中
D、将串str2复制到串str1中后再将串str3连接到串str1之后

七、指针 (共10题,每题1分,共计10分)

(  C  )
1、c语言规定,函数返回值的类型是由( )决定的。
A、return语句中的表达式类型
B、调用该函数时的主调函数类型
C、在定义函数时所指定的函数类型
D、调用该函数时由系统临时
(  B  )
2、若有以下定义 int x[10], *pt=x; 则对x数组元素的正确引用是________。
A、*&x[10]
B、*(x+3)
C、*(pt+10)
D、pt+3
(  C  )
3、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
A、gets(s);
B、while((s[i++]=getchar())!=‘\n’);s[i]=‘\0’;
C、scanf(“%s”,s);
D、do{ scanf(“%c”,&s[i]); } while(s[i++]!=‘\n’); s[i]=‘\0;
(  B  )
4、若已定义实参数组 int a[3][4]= { 2,4,6,8,10 }; 则在被调用函数 f 的下述定义中,对形参数组 b 定义正确的选项是 __________.
A、f(int b[ ][6])
B、f(b) int b[ ][4];
C、f(int b[3][ ]);
D、f(b) int b[4][5];
(  C  )
5、下面程序段的运行结果是________。
char a[]="abcdefgh"; char *p=a; p+=3; printf("%d\n",strlen(strcpy(p,"abcd")));
A、8
B、12
C、4
D、7
(  C  )
6、以下正确的程序段是________。
A、char str1[ ]="12345",str2[ ]="abcdef";
B、char str[10],*st="abcde";strcat(str,st);
C、char str[10]=" "。*st="abcde";strcat(str,st);
D、char*st1="12345",*st2="abcde";strcat(st1,st2);
(  D  )
7、下面说明不正确的是________。
A、char a[10]="china";
B、char a[10],*p=a;p="china"
C、char*a;a="china";
D、chara[10],*P;P=a="china"
(  C  )
8、以下说法错误的是________。
A、C语言没有输入输出语句
B、运算符%的作用是求余
C、printf()是输入函数
D、保留字又称关键字,是指被赋予特定含义和有专门用途的标识符
(  B  )
9、以下叙述中错误的是________。
A、在函数外定义的变量是全局变量
B、全局变量和局部变量不能同名
C、在函数内定义的变量是局部变量
D、函数的形参是局部变量
(  B  )
10、字符串指针变量中存入的是________。
A、字符串
B、字符串的首地址
C、第一个字符
D、字符串变量

八、结构体 (共10题,每题1分,共计10分)

(  A  )
1、有以下程序 struc stu
{
char name[10];
int num;
};
void f1(struct stu c)
{
struct stu b={"lisiguo",2042};
c=b;
}
void f2(struct stu *c)
{
struct stu b={"sundan",2044} ;
*c=b;
}
main( )
{
struct stu a={"yangsan",2041},b={"wangyin",2043} ;
f1(a);
f2(&b);
printf("%d %d\n",a.num,b.num);
}
执行后的输出结果是________。
A、2041 2044
B、2041 2043
C、2042 2044
D、2042 2043
(  A  )
2、有以程序
#include <stdio.h>
#include <string.h>
typedef struct
{
char name[9];
char sex;
float score[2];
} stu;
void f( stu a)
{
stu b={"zhao" ,’m’,85.0,90.0} ;
int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++) a.score[i]=b.score[i];
}
main()
{
stu c={"qian",’p’,95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]);
}
程序的运行结果是________。
A、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,f,95,92
D、Zhao,m,85,90
(  D  )
3、若有以下说明语句:
struct student
{
int num;
char name[ ];
float score;
} stu;
则下面的叙述不正确的是: ( )
A、struct是结构体类型的关键字
B、struct student 是用户定义的结构体类型
C、num, score都是结构体成员名
D、stu是用户定义的结构体类型名
(  A  )
4、对以下定义的表述中,正确的是________
struct node
{
int num;
char name[10];
}
stud;
A、stud是一个结构体变量
B、stud是一个结构体类型
C、node是一个结构体数据
D、node是一个结构体变量
(  A  )
5、以下程序的运行结果是
#include"stdio.h"
main()
{
struct date {
int year, month, day ;
} today;
printf("%d\n",sizeof(struct date));
}
A、6
B、8
C、10
D、12
(  C  )
6、以下scanf函数调用语句中不正确的是__。
struct pupil
{
char name[20];
int age;
int sex;
}
pup[5], *p=pup;
A、scanf("%s", pup[0].name);
B、scanf("%d", &pup[0].age);
C、scanf("%d", p->age);
D、scanf("%d", &(p->sex));
(  C  )
7、下面说法正确的是________。
A、文件指针变量的值是文件当前正在处理的字节地址
B、文件指针变量的值是文件中包含的字符个数
C、文件指针的类型是一种指针类型
D、文件指针的类型是结构体类型
(  A  )
8、以下叙述中正确的是________。
A、使用 typedef 定义新类型名后,新类型名与原类型名实际上是等价的
B、结构体类型中的各个成分均不能是数组或指针
C、结构体类型的变量,不能在声明结构体类型组成时一起定义
D、元素为结构体类型的数组,只能在声明过结构体类型之后,单独进行定义
(  B  )
9、相同结构体类型的变量之间,可以________。
A、相加
B、赋值
C、比较大小
D、地址相同
(  B  )
10、有以下程序
struct stu
{
char num[10];
float score[3];
};
main( )
{
struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;
int i;
float sum=0;
p=s;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.2f\n",sum);
}
程序运行后的输出结果是________。
A、270
B、270.00
C、285.00
D、285

九、程序题 (共10题,每题1分,共计10分)

(  B  )
1、下面程序的运行结果是________。
main( )
{
int s=0,i=1;
while (s<=10)
{
s=s+i*i;
i++;
}
printf("%d",--i);
}
A、4
B、3
C、5
D、6
(  A  )
2、若有以下定义和语句 char sl[10]= "abcd!", *s2="n123\\";
printf("%d %d\n", strlen(s1),strlen(s2));
则输出结果是________。
A、5 5
B、105
C、107
D、5 8
(  A  )
3、有以下程序
main( )
{
char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"} ;
printf("%d\n",strlen(p[4]));
}
执行后输出结果是________。
A、2
B、3
C、4
D、5
(  B  )
4、以下程序的输出结果是
main()
{
char cf[3][5]={"aaaa","bbb","cc"};
printf("\"%s\"\n",ch[1]);
}
A、"AAAA"
B、"BBB"
C、"BBBCC"
D、"CC"
(  B  )
5、请读程序 :
#include <stdio.h>
f(int b[ ], int n)
{
int i, r=1;
for(i=0; i<=n; i++) r=r*b[i];
return r;
}
void main()
{
int x, a[]={2,3,4,5,6,7,8,9} ;
x=f(a, 3);
printf("%d\n",x);
}
上面程序的输出结果是 __________.
A、720
B、120
C、24
D、6
(  D  )
6、设x和y均为int型变量,且x=10,y=3,则以下语句的输出结果是________。 printf(" %d,%d\n",x --,--y);
A、10,3
B、9,3
C、9,2
D、10,2
(  B  )
7、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是________。
main()
{
char s[100];
int c, i;
scanf("%c",&c);
scanf("%d",&i);
scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}
A、1,456,789
B、1,23,456
C、1,23,456,789
D、123,456,789
(  C  )
8、以下程序的输出结果是______。
#include <stdio.h>
#include <math.h>
main()
{
int a=1,b=4,c=2;
float x=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z);
}
A、14.000000
B、15.400000
C、13.700000
D、14.900000
(  A  )
9、以下程序的输出结果是______。
main()
{
int k=4,m=1,p;
p=func(k,m);
printf("%d,",p);
p=func(k,m);
printf("%d\n",p);
}
func(inta,int b)
{
static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A、8,17
B、8,16
C、8,20
D、8,8
(  A  )
10、以下程序的输出结果是______。
main( )
{
union
{
char i[2];
int k;
}
r;
r.i[0]=2;
r.i[1]=0;
printf("%d\n",r.k);
}
A、2
B、1
C、0
D、不确定
相关标签:
  • C语言
  • 大连交通大学
  • 期末复习题