统考试卷八(答案及得分)
一、单选题
1
下列均能作为C语言用户自定义标识符的是_________
A  Void union WORD
B  a3_b3 _123 IF
C  For -abc Case
D  2a Do sizeof
回答错误,参考答案为:B
2
下列选项中,不正确的赋值语句是_________
A  ++t;
B  n1=(n2=(n3=0));
C  k=i= =j;
D  a=b+c=1;
回答错误,参考答案为:D
3
若已定义xydouble型变量,则执行表达式x=1,y=x+3/2后,y的值是_______________
A  1
B  2
C  2.0
D  2.5
回答错误,参考答案为:C
4
下列程序段执行后的输出结果是_________
int sum,pad;
sum=pad=5;
pad=sum++, pad++, ++pad;
printf("%d\n",pad);
A  7
B  6
C  5
D  4
回答错误,参考答案为:A
5
设有变量说明:int x=2,y=1;执行语句:y=--x|| y++;后,变量y的值为_________
A  0
B  1
C  2
D  3
回答错误,参考答案为:B
6
下列程序的运行结果_________ main() { int x=3,y=0,z=0; if (x=y+z) printf("****"); else if(x==0)printf("####"); else printf($$$$); }
有语法错误不能过通过编译
B  ****
C  $$$$
D  ####
回答错误,参考答案为:D
7
以下程序段的输出结果是_________ char str[12]={'s', 't', 'r', 'i', 'n', 'g'}; printf("%d\n", strlen(str));
A  6
B  7
C  11
D  12
回答错误,参考答案为:A
8
以下说法中正确的是_________
A  #defineprintf都是C语句
B  #defineC语句,而printf是函数
C  printfC语句,#define是预处理命令
D  #defineprintf都不是C语句
回答错误,参考答案为:D
9
下列程序执行后的输出结果是_________
#define MA(x) x*(x-1)
main()
{ int a=1,b=2;
printf("%d \n",MA(1+a+b)); }
A  6
B  8
C  10
D  12
回答错误,参考答案为:B
10
设有定义: int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a, i;
其中 0i9, 则对a数组元素不正确的引用是_____
A  a[10]
B  *(a+i)
C  a[p-a]
D  p[i]
回答错误,参考答案为:A
11
设有以下说明语句:
struct ex{ int x;
float y;
char z;
}example;
则下面的叙述中不正确的是_________
A  struct结构体类型的关键字
B  example是结构体类型名
C  x,y,z都是结构体成员名
D  struct ex是结构体类型
回答错误,参考答案为:B
12
下面程序段的输出结果是_________
enum team{ my, your=4, his, her=10};
printf("%d %d %d %d\n", my, your, his, her);
A  0 1 2 3
B  0 4 0 10
C  0 4 5 10
D  1 4 5 10
回答错误,参考答案为:C
13
在函数中未指定存储类别的变量,其隐含存储类别为_________
静态
自动
外部
存储器
回答错误,参考答案为:B
14
设有变量说明:char a[6],*p=a;下面表达中,正确的赋值语句是_________
A  a[6]=Hello;
B  a=Hello;
C  *p=Hello
D  p=Hello;
回答错误,参考答案为:D
15
命题“当两个字符串s1s2相等时为真,否则为假”的C语言表达式为_________
A  s1==s2
B  s1=s2
C  !strcmp(s1,s2))
D  strcmp(s1,s2)
回答错误,参考答案为:C
16
char *p, q; ,则下列语句引用合法且有意义的是______________
A  p=&q;
B  p*=3;
C  p+=q;
D  p+=3
回答错误,参考答案为:A
17
设有说明:int a[4][4];与数组元素a[3][3]不等价表示的是_________
A  *(a[3]+3)
B  *(*(a+3)+3)
C  *&a[3][3]
D  *(*(a+3))+3
回答错误,参考答案为:D
18
下面函数的功能是_________ sss(char *s, char *t) { while((*s)&&(*t)&&(*t++==*s++)); return(*s-*t); }
求字符串的长度
比较两个字符串的大小
将字符串s复制到字符串t
将字符串s接续到字符串t
回答错误,参考答案为:B
19
以下程序段的输出结果是_________ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1] for(i=0i<4i+=2)printf("%d ",p[i])
A  5 2
B  5 1
C  5 3
D  9 7
回答错误,参考答案为:C
20
数组和链表都可以用于存储一组数据,以下说法不正确的是_____________
数组和链表所占用的存储区域均不能在程序运行期间动态分配
数组占用连续的一块存储区域,链表可能占用若干不连续的存储区域
数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取
数组的长度是固定的,链表的长度是不固定的。
回答错误,参考答案为:A
二、填空题
1
C语言中,一个C源程序至少包含一个__________函数,一个语句至少包含一个____________
回答错误,参考答案为:main ##
2
在函数体内说明的变量称为____________ ;在所有函数之外说明的变量称为 _____________
回答错误,参考答案为:局部变量(内部变量) ## 全局变量(外部变量、全程变量)
3
在程序中需要调用库函数strcpy时必须包含头文件______________
回答错误,参考答案为:string.h#include
4
int *f ( )说明的含义是_________
回答错误,参考答案为:函数类型为int指针的f函数
5
假设int *p; ,若要用下面的语句使指针变量p指向一个存储整型变量的动态存储单元,则应填入:
p=__________ malloc( sizeof(int));
回答错误,参考答案为:(int *)
三、读程写结果
1
执行以下程序段:
char str[13]=abcd1234;
scanf(%s,str);
printf(%s\n,str);
若从键盘上输入的数据流为:efgh 则输出结果是______________________
回答错误,参考答案为:efgh
2
下面程序的运行结果是____________
main()
{ char i, x[ ]=the teacher;
i=0;
while(x[++i]!=\0)
if(x[i-1]==t )
printf(%c,x[i]);
}
回答错误,参考答案为:he
3
下面程序的运行结果是___________
main()
{ char ch[7]=6521;
int is =0;
for(i=0; ch[i]!='\0'; i++
s=10*s+ch[i]-'0';
printf(%d\n”,s);
}
回答错误,参考答案为:6521
4
程序:
int f(int x,int y)
{ int m=5;
m+=x*y;
return m;
}main( )
{ int m=10,a=6,b=7;
printf (%d\n,f(a,b)/m);
}执行以上程序后,输出结果是___________
回答错误,参考答案为:4
5
程序:
int i, j=2;
void p( )
{ for (i=0; i<4; i++)
{ printf(%d,++j);
if ((i+1)%2= =0 ) printf (\n)
}}main( )
{ for(i=0; i<3; i++) p( );
printf(%d\n,i);
}执行以上程序后,输出的第一行是 ________,第二行是________,第三行是________
回答错误,参考答案为:34##56##5
6
如果从键盘上输入的数据流为 china#<回车>,则下列程序运行后的输出结果为______________
#include
main()
{ int v1=0,v2=0; char ch;
while((ch=getchar())!='#')
switch(ch)
{ case 'a':
case 'h':
case 'n': v1++;
default : v2++;
}
printf("%d,%d\n",v1,v2);
}
回答错误,参考答案为:3##5
7
程序: struct st { int x
int *y
}*p
int dt[4]= {10, 20, 30, 40} struct st aa[4]={50, &dt[3], 60, &dt[2], 70, &dt[1], 80, &dt[0]}
main ( )
{ p=aa
printf (%d\n, (++p)>x)
printf (%d\n, ++(*p>y))
}
执行以上程序后,输出的第一行是_____________,第二行是_____________
回答错误,参考答案为:60##31
四、完善程序题
1
以下程序的功能是欲从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入-1时结束输入。
main ( )
{ float x, amax, amin
scanf ( %f , &x)
amax=
amin=x
while ( _________________ )
{ if ( _________________ ) amax=x
if ( _________________ ) amin=x
scanf (%f, &x)c语言的冒泡排序算法 }
printf (\namax=%f\namin=%f\n, amax, amin) }
回答错误,参考答案为:x!=-1x>=0##amaxamax##amin>xx<AMIN< font>
2
4 下面程序的功能是计算1001000之间有多少个数其各位数字之和是5
main()
{ int i, s, k, count=0;
for( i=100; i<=1000; i++
{ s=0;
k=i;
while ( k )
{ s = s+k%10;
k =___________; }
if( s!=5 ) ___________;
else count++; }
printf( %d\n, count);
回答错误,参考答案为:k/10## continue
3
有如下说明:
struct lin k
{ int data;
struct link *
ext; }*p;
p已申请到一个结点空间,要求将p串接到头结点head上,写出建立如图所示的存储结构和赋值所需的
head
data next
head = ___________;
_____________ = 20;
_____________ = NUL
回答错误,参考答案为:p## p->data(head->data##) p->next(head->next)
4
以下程序的功能是用二分法求方程2x3-4x2+3x-6=0的根。请填空。
#include ________________
float f(float x)
{ return z*x*x*x-4*x*x+3*3-6 ;}
main()
{ float m=-100,n=90,r;
r=(m+n)/2;
while (f(r)*f(n)!=0)
{ if(___________<0 )m=r;
else n=r;
if(fabs(f(r))<1e-6)break;
r=(m+n)/2;
printf(This fangcheng jie is %6.3f \n,r);
回答错误,参考答案为:#include ## f(r)*f(n)
5
程序定义了N×N的二维数组,并在主函数中按行为主序赋予1n2的自然数。fun函数的功能是:使数组第一列元素中的值与最后一列元素中的值对调、第二列元素的值与倒数第二列中的值对调、……、其他依次类推。请按算法要求完善下列程序。
#include
#define N 5
int fun(_____________________)
{ int i ,m,t;
for(m=0;m
for(i=0;i
{ t = a[m][i];
_______________________;
a[m][N-1-i] = t;
}
}
main()
{ int a[N][N],i,j,k=1;
printf("***** The array *****\n");
for(i=0;i
{ for(j=0;j
{ a[i][j]=k++;
printf("%4d",a[i][j]);
}
printf("\n");
}
fun(a);
printf("***** The result *****\n");
for(i=0;i
{ for(j=0;j
printf("%4d",a[i][j]);
printf("\n");
}
}
回答错误,参考答案为:char a[][N]char (*a)[N]##a[m][i]=a[m][N-1-i]
6
现有10个整数12823615932412821存放长度为10的数组a中,函数void sort(int a[])的功能是使用冒泡算法对其进行从小到大排序。请完善函数并回答题后提出的问题
void sort(int a[])
{ int i , j , done=0,temp
for(i=1;i<10&&!done;i++)
{ done =1
for(j=0;j<=9-i;j++
if(______________)
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
done=0; }
}
}
请写出执行冒泡排序算法后第一趟的结果______________________________________
上述冒泡排序共需要执行___________趟。
回答错误,参考答案为:a[j]>a[j+1]## 8 12 6 15 9 23 32 2## 21##41## 5(41)
总分:100 您的得分:0 正确率:0%
窗体底端

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。