C语言程序设计综合测试题

请大家在60分钟内完成下面的答题,总分100分。
制卷人:蒋腊菊
制卷时间:2020-02-12

C语言中,可用来定义多个不同数据类型变量的数据类型是
A.结构体
B.文件型
C.数组
D.枚举
C语言中,可设有如下程序段,int k=8;while(k==’8’){k--;}则下面描述中正确的是 
A. 循环体语句k--;执行10次
B. 循环体语句k--;执行无限次
C. 循环体语句k--;一次也不执行
D. 循环体语句k--;执行一次用来定义多个不同数据类型变量的数据类型是
若有以下宏定义: 
#define  N 2 
#define Y(n)  ((N+2)∗n)
 则执行语句“z=3∗(N+Y(5));”后的结果是
A.语句有错误
B.z = 66
C.z = 70
D.z 无定值
以下叙述中错误的是
A. C语言中对二进制文件的访问速度比文本文件快
B. C语言中,随机文件以二进制代码形式存储数据
C. 语句FILE fp;定义了一个名为fp的文件指针
D. C语言中的文本文件以ASCII码形式存储数据
 以下能对二维数组a 进行正确初始化的语句是
A. int a[2][]={{1,0,1},{5,2,3}};
B. int a[][3]={{1,2,3},{4,5,6}};
C. int a[2][4]={{1,2,3},{4,5},{6}};
D. int a[][3]={{1,0,1},{},{1,1}};
下面程序的运行结果是
main( )
{ int a,b,c;
a=b=c=0;
c= (a- = a-5 ), ( a = b,b+5);
printf(“%d,%d,%d\n”,a,b,c);
}
    ____________
下面程序的运行结果是
#include
main()
{ int x[5]={2,4,6,8,10},*p,**pp;
p=x;
pp=&p;
printf(“%d”,*(p++));
printf(“%d\n”,**pp);
}
    ____________
下面程序的运行结果是 
main()
{ int i=2,j=3,k=4;
if(i++==2&&(++j==3||k++==3)) k++;
printf("%d%d%d\n",i,j,k);
}
    ____________
下面程序段的功能是 
fun(char *a,char *b)
{ while((*a!='\0')&&(*b!='\0')&&(*a==*b))
{ a++;b++; }
return(*a-*b);
}
    ____________
下面程序的运行结果是
#include
void WriteStr(char *fn,char *str)
{ FILE *fp;
fp=fopen(fn,"w");fputs(str,fp);fclose(fp);
}
main()
{ WriteStr("t1.dat","start");
WriteStr("t1.dat","end");
}
    ____________
下列程序的功能是:定义了3*3的二维数组,并在主函数中自动赋值;函数fun的功能是使二维数组的上三角元素的值全部置0。请将正确的内容填入答题卡的相应位置上,使程序完整。
                
 调用函数前   调用函数后    
 1  2  3                1  0  0    
 2  4  6                2  4  0   
 3  6  9                3  6  9
#include  
             ①          
{   int a[3][3],i,j;  
for(i=1;i<3;i++) 
     for(j=1;j<=3;j++)   
      ②        =i*j; 
fun(3,a); 
printf(“the result:\n”);
 for(i=0;i<3;i++)  
{  for(j=1;j<3;j++)  
  printf(“%4d”,a[i][j]);    
 printf(“\n”);  }
 }  
void fun(     ③       )  
{ int i,j; 
for(i=0;ifor(j=i+1;j<   ④      ;j++) 
 a[i][j]=0; 
}
填空1    ____________
填空2    ____________
填空3    ____________
填空4    ____________
已知head指向单链表的第一个结点,以下函数del完成从单向链表中删除值为num的第一个结点。
#include “stdio.h”
struct student
{ int info;
struct student *link;
};
struct student *del(struct student *head,int num)
{ struct student *p1,*p2;
if(head==NULL)
printf(“\n list null!\n”);
else
{ p1=head;
while(     ①          )
{ p2=p1;
p1=p1->link;
}
if(num==p1->info)
{ if(p1==head)
②             ;
else
 ③               ;
printf(“delete:%d\n”,num);
}
else
printf(“%d not been found!\n”,num);
}
return head;
}
填空1    ____________
填空2    ____________
填空3    ____________
下面程序的运行运行结果为:13431,请根据结果填写程序。
struct NODE
{ int k;
struct NODE *link;
};
main()
{ struct NODE m[5],*p=m,*q=m+4;
int i=0;
while(p!=q)
{    ①                                  ; 
p++;
q->k=i++;
②                         ;}
③                
for(i=0;i<5;i++) printf("%d",m[i].k);
printf("\n");
}
填空1    ____________
填空2    ____________
填空3    ____________
姓名
    ____________

14题 | 被引用5次

使用此模板创建