目录
1
【判断题】 (10分)
有下列程序段,程序段运行后的输出结果##2##3##4##5( )。
int k;
for (k=2;k<6;k++,k++)
printf("##%d",k);
A.
对
B.
错
正确
本题总得分10分
2
【判断题】 (10分)
在循环结构中break是终止循环,跳出循环体。
A.
错
B.
对
正确
本题总得分10分
3
【单选题】 (10分)
以下不构成无限循环的语句组是( )。
A.
int n=0,i;
for (n=0,i=1; ;i++)
n+=i;
B.
int n=0;
while (1)
n++;
C.
int n=10;
while (n);
n--;
D.
int n=0
do
{++n;}
while (n<=0);
正确
本题总得分10分
4
【单选题】 (10分)
在C语言中有关for循环,下列正确的说法是( )。
A.
for循环的循环体语句中,可以包含多条语句,但必须用花括号写成复合语句。
B.
for循环是先执行循环体语句,后判断表达式。
C.
for循环只能用于循环次数已经确定的情况。
D.
在 for循环中,不能用break跳出循环体。
正确
本题总得分10分
5
【单选题】 (10分)
有下列程序,程序运行后的输出结果是( )。
#include
int main()
{
int i,sum;
for (i=1;i<6;i++) sum+=sum;
printf("%d",sum);
return 0;
}
A.
14
B.
0
C.
15
D.
不确定
正确
本题总得分10分
6
【单选题】 (10分)
有下列程序,程序运行后的输出结果是( )。
#include
int main( )
{
int i,j,a=0;
for (i=0;i<2;i++)
{
for (j=0;j<4;j++)
{
if (j%2) break;
a++;
}
a++;
}
printf("%d",a);
return 0;
}
A.
6
B.
4
C.
5
D.
7
正确
本题总得分10分
7
【判断题】 (10分)
while与do-while在任何时候都可以互换。
A.
错
B.
对
正确
本题总得分10分
8
【判断题】 (10分)
下面程序可以正确求出1+2+3+。。。+n的和。()
#include
int main( )
{
int i = 1,sum = 0,n;
scanf(“%d”,&n);
while (i <= n)
sum = sum + i;
++i;
printf("sum=%d",sum);
return 0;
}
A.
错
B.
对
正确
本题总得分10分
9
【单选题】 (10分)
以下程序中的变量已正确定义,程序段的输出结果是( )。
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++); printf("*");
A.
********
B.
****
C.
**
D.
*
正确
本题总得分10分
10
【单选题】 (10分)
有下列程序,程序运行后的输出结果是( )。
#include
int main()
{
int i,j;
for (i=3;i>=1;i--)
{
for (j=1;j<=2;j++)
printf(" %d",i+j);
printf("\n");
}
return 0;
}
A.
2 3
3 4
4 5
B.
4 5
3 4
2 3
C.
2 3 4
3 4 5
D.
4 3 2
5 4 3
正确
本题总得分10分
1
【判断题】 (10分)
在C语言中,数组元素的最小下标是1 。
A.
错
B.
对
正确
本题总得分10分
2
【判断题】 (10分)
在C语言中,数组名代表首地址。
A.
错
B.
对
正确
本题总得分10分
3
【判断题】 (10分)
在C语言中,数组一般针对批量数据的处理,这些数据必须具有相同的类型()。
A.
对
B.
错
正确
本题总得分10分
4
【判断题】 (10分)
假设有一定义语句int a[][3]={1,2,3,4,5,6};那么数组的行数是不确定的。
A.
错
B.
对
正确
本题总得分10分
5
【判断题】 (10分)
有下列程序,程序运行后的输出结果是0( )。
#include
int main( )
{
int a[5]={1,2,3};
printf("%d\n",a[3]);
return 0;
}
A.
错
B.
对
正确
本题总得分10分
6
【单选题】 (10分)
若有说明:int a[10]; 则对a 数组元素的正确引用是( )。
A.
a(5)
B.
a[3.5]
C.
a[10-10]
D.
a[10]
正确
本题总得分10分
7
【单选题】 (10分)
有下列程序段,运行后的输出结果是( )。
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for (i=0;i<3;i++)
printf("%d ",x[i][2-i]);
A.
1 5 9
B.
3 5 7
C.
1 4 7
D.
3 6 9
正确
本题总得分10分
8
【单选题】 (10分)
有下列程序,运行后的输出结果是( )。
#include
int main()
{
int a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
return 0;
}
A.
输出值
B.
5430
C.
1470
D.
0650
正确
本题总得分10分
9
【单选题】 (10分)
有下列程序,运行后的输出结果是( )。
#include
int main()
{
int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;
for (i=0;i<12;i++)
c[s[i]]++;
for (i=1;i<5;i++)
printf(" %d",c[i]);
printf(" \n");
return 0;
}
A.
4 3 3 2
B.
1 1 2 3
C.
1 2 3 4
D.
2 3 4 4
正确
本题总得分10分
10
【单选题】 (10分)
若有定义:int b[3][4]={0};则下述正确的是( )。
A.
不正确的定义
B.
b[0][0]的值是0,其他元素值未知
C.
数组b中各元素均为0
D.
没有元素能得初值0
正确
本题总得分10分
1
【判断题】 (10分)
有如下函数调用语句:
fun(r1,r2+r3,(r4,r5));
该函数调用语句中,含有的实参个数是3个。
A.
对
B.
错
正确
本题总得分10分
2
【判断题】 (10分)
函数可以嵌套定义,但不能嵌套调用。
A.
错
B.
对
正确
本题总得分10分
3
【判断题】 (10分)
mian函数可以自己调用自己。
A.
对
B.
错
正确
本题总得分10分
4
【单选题】 (5分)
以下正确的函数定义是( )。
A.
fun(int x,y)
{ int z; return int z; }
B.
fun(x,y)
{int x,y; z=x+y; retun z;}
C.
double fun(int x,int y)
{ double z;z=x+y;return z; }
D.
double fun(int x,int y)
{ z=x+y; return z; }
正确
本题总得分5分
5
【单选题】 (10分)
在C语言函数中,下面说法正确的是( )。
A.
一个函数中只能有一个return语句。
B.
一个return语句可以返回多个值。
C.
一个函数中可以有多个return语句,但是最多执行其中一个return语句。
D.
一个函数中可以有多个return语句,可能多个return语句全部执行
正确
本题总得分10分
6
【单选题】 (10分)
在C语言函数中,以下说法正确的是( )。
A.
如果形参与实参的类型不一致以实参类型为准
B.
如果函数值的类型与return返回值类型不一致,以函数值类型为准
C.
return后边的值不能为表达式
D.
定义函数时,形参的类型说明可以放在函数体内。
正确
本题总得分10分
7
【单选题】 (10分)
在C语言程序中,以下正确的描述是( )。
A.
函数的定义和函数的调用均不可以嵌套
B.
函数的定义可以嵌套,但函数的调用不可以嵌套
C.
函数的定义不可嵌套,但函数的调用可以嵌套
D.
函数的定义和调用均可以嵌套
正确
本题总得分10分
8
【单选题】 (10分)
有下列程序,程序运行后的输出结果是( )。
#include
int f(int a)
{
int b=0,c=3;
b++;c++;
return(a+b+c);
}
int main( )
{
int a=2,i;
for (i=0;i<3;i++)
printf("%4d",f(a));
return 0;
}
A.
7 10 13
B.
7 9 11
C.
7 7 7
D.
7 8 9
正确
本题总得分10分
9
【单选题】 (10分)
有下列程序,程序运行后的输出结果是( )。
#include
int func(int a,int b);
int main()
{
int k=4,m=1,p;
p=func(k,m);
printf("%d ",p);
p=func(k,m);
printf("%d\n",p);
return 0;
}
int func(int a,int b)
{
int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
{
int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A.
8 16
B.
8 20
C.
8 17
D.
8 8
正确
本题总得分10分
10
【单选题】 (10分)
有下列程序,程序运行后的输出结果是( )。
#include
int fun (int x,int y);
int main()
{
int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
return 0;
}
int fun (int x,int y)
{
if (x!=y) return ((x+y)/2);
else return (x);
}
A.
6
B.
8
C.
3
D.
12
正确
本题总得分10分
1
【判断题】 (10分)
若有下列语句:
int a[4]={1,2,3,4},*p;
p=&a[2];
则*p的值是3
A.
错
B.
对
正确
本题总得分10分
2
【判断题】 (10分)
int *p;此时*是一个运算符号,表示间接访问p所指向的变量。
A.
错
B.
对
正确
本题总得分10分
3
【判断题】 (10分)
有下列程序段,程序段运行后的输出结果是10( )。
int *p,n;
n=10; p=&n; n=*p+10;
printf("%d\n", *p);
A.
对
B.
错
正确
本题总得分10分
4
【单选题】 (10分)
若有说明:int a=2,*p=&a,*q=p;,则以下非法的赋值语句是( )。
A.
*p=*q
B.
a=*q
C.
q=a
D.
p=q
正确
本题总得分10分
5
【单选题】 (10分)
变量的指针是指该变量的( )。
A.
值
B.
别名
C.
名
D.
首地址
正确
本题总得分10分
6
【单选题】 (10分)
若已定义int a=5; 下列对(1)、(2)两个语句的正确解释是( )
(1) int *p=&a; (2) *p=a;
A.
语句(1)和语句(2)中的*p含义相同,都表示给指针变量p赋值。
B.
语句(1)和语句(2)语句都是把变量a的地址值赋给指针变量p。
C.
语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给指针变量p。
D.
语句(1)是对p进行说明的同时进行初始化,使p指向a;语句(2)是将a的值赋给p指的空间。
正确
本题总得分10分
7
【单选题】 (10分)
下列程序中,主函数调用findmax函数返回数组中的最大值。在下划线处应填入的是( )。
#include
findmax( int *a, int n)
{
int *p, *s;
for (p=a, s=a; p-a if(__________) s=p; return (*s); } int main() { int x[5]={12,21,13,6,18}; printf("%d\n", findmax(x,5)); return 0; } A. a[p]>a[s] B. p-a>p-s C. p>s D. *p>*s 正确 本题总得分10分 8 【单选题】 (10分) 有下列程序,程序运行后的输出结果是( )。 #include void fun( int *x,int *y); int main() { int x=1,y=2; fun(&y,&x); printf("%d %d",x,y); return 0; } void fun( int *x,int *y) { printf("%d%d",*x,*y); *x=3;*y=4; } A. 121 2 B. 123 4 C. 211 2 D. 214 3 正确 本题总得分10分 9 【单选题】 (10分) 有下列程序段,程序段运行后的输出结果是( )。 int t[]={0,1,2,3,4,5,6,7,8,9}, *p; p=t; printf("%d\n", *p+9); A. 0 B. 10 C. 1 D. 9 正确 本题总得分10分 10 【判断题】 (10分) 若有下列语句: int a[4]={1,2,3,4},*p; p=a; 则*p的值是3。 A. 错 B. 对 正确 本题总得分10分 1 【单选题】 (10分) 若给出下列定义: char x[]="abcdefg"; char y[]={'a','b','c','d','e','f','g'}; 则正确的叙述为( )。 A. 数组x的长度小于数组y的长度 B. 数组y的定义是错的 C. 数组x的长度大于数组y 的长度 D. 数组x和数组y的长度相同 正确 本题总得分10分 2 【单选题】 (10分) 有下列程序,程序运行后的输出结果是( )。 #include int main() { char ch[7]={ "65ab21"}; int i,s=0; for (i=0;ch[i]>= '0'&&ch[i]<='9';i+=2) s=10*s+ch[i]- '0'; printf("%d\n",s); return 0; } A. 6 B. 12ba56 C. 6521 D. 62 正确 本题总得分10分 3 【单选题】 (10分) 设有如下的程序段: char s[]="girl", *t; t=s;则下列叙述正确的是( )。 A. t指向s数组首元素 B. 数组s中的内容和指针变量t中的内容相等 C. *t与 &s[0]相等 D. s数组长度和t长度相等 正确 本题总得分10分 4 【单选题】 (10分) 有下列程序段,程序段运行后的输出结果是( )。 char b1[8]="abcdefg", b2[8], *pb=b1+3; while( --pb>=b1) strcpy(b2, pb); printf("%d", strlen(b2)); A. 1 B. 8 C. 3 D. 7 正确 本题总得分10分 5 【单选题】 (10分) 有下列程序,程序运行后的输出结果是( )。 #include char cchar(char ch) { if (ch>='A' && ch<'Z') ch=ch-'A'+'a'; return ch; } int main() { char s[]="ABC+abc=defDEF", *p=s; while (*p) { *p=cchar(*p); p++; } puts(s); return 0; } A. abc+ABC=DEFdef B. abc+abc=defdef C. abcaABCDEFdef D. abcabcdefdef 正确 本题总得分10分 6 【判断题】 (5分) 从存储机制上看,字符串是以'\0'为结束标志的字符串数组。() A. 对 B. 错 正确 本题总得分5分 7 【判断题】 (10分) 语句printf(“This is a string!”)会把双引号输出。 A. 错 B. 对 正确 本题总得分10分 8 【判断题】 (10分) 下面程序的运行结果是:We,s()。 #include int main() { printf (“%s, %c \n”, "We", *"students"); return 0; } A. 对 B. 错 正确 本题总得分10分 9 【判断题】 (10分) 下面程序段是正确的。() char str[20]; str=“I love China!” A. 错 B. 对 正确 本题总得分10分 10 【判断题】 (10分) 可以用函数strcat将两个字符串连接,也可以用+将两个字符串连接。 A. 错 B. 对 正确 本题总得分10分第十章测试