最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

扬州大学C语言0606、0706期末试题

来源:动视网 责编:小OO 时间:2025-09-25 12:46:44
文档

扬州大学C语言0606、0706期末试题

200606一、单选题(每小题2分,共30分)1.下列表示中,不是C语言合法字符常量的是(1)。A.‘\0xff’B.‘\65’C.‘$’D.‘\x2a’2.设有如下定义:floaty=3.45678;intx;则下列表达式中能实现将y中数值保留至小数点后2位,小数点后第3位四舍五入的表达式是(2)。A.y=(y*100+0.5)/100.0B.x=y*100+0.5,y=x/100.0C.y=y*100+0.5/100.0D.y=(y/100+0.5)*100.03.下列表示中,能在C语言中
推荐度:
导读200606一、单选题(每小题2分,共30分)1.下列表示中,不是C语言合法字符常量的是(1)。A.‘\0xff’B.‘\65’C.‘$’D.‘\x2a’2.设有如下定义:floaty=3.45678;intx;则下列表达式中能实现将y中数值保留至小数点后2位,小数点后第3位四舍五入的表达式是(2)。A.y=(y*100+0.5)/100.0B.x=y*100+0.5,y=x/100.0C.y=y*100+0.5/100.0D.y=(y/100+0.5)*100.03.下列表示中,能在C语言中
200606

一、单选题(每小题2分,共30分)

1.下列表示中,不是C语言合法字符常量的是    (1)     。

A. ‘\0xff’          B. ‘\65’          C. ‘$’           D. ‘\x2a’

2.设有如下定义:

    float y=3.45678; 

    int x;

则下列表达式中能实现将y中数值保留至小数点后2位,小数点后第3位四舍五入的表达式是   (2)      。

A. y=(y*100+0.5)/100.0            B. x=y*100+0.5, y=x/100.0

C. y=y*100+0.5/100.0              D. y=(y/100+0.5)*100.0

3.下列表示中,能在C语言中正确定义三个整型变量a、b、c,且能给它们均赋值5的是    (3)     。

A. int a=b=c=5;                   B. int a,b,c=5;

C. int a=5,b=5,c=5;               D. a=b=c=5;

4.设有数学命题“当整数a的值为奇数时,表达式的值为真,否则为假”,则下列C语言表达式中,不能满足该数学命题要求的是   (4)     。

A.a%2==1        B. !(a%2)         C. !(a%2==0)      D. a%2

5.执行下列程序段后,变量i的值是   (5)   。

         int i=1;

         switch(i){ case  0: i+=1;

                    case  1: i+=1;

                    case  2: i+=1;

                    default: i+=1;

                   }

A. 1              B. 2             C. 3             D. 4

6.在C语言中,break语句 (6)        。

A. 能用在C源程序中的任何位置             B. 只能用在循环体内

C. 只能用在循环体内或switch语句中        D. 可用作函数内的任一语句

7.设有程序段:

    int x=10;

    while (x=0) x=x-1;

则下列叙述中正确的是    (7)      。

A. while循环执行10次           B. 循环是无限循环

C. 循环体语句一次也不执行       D. 循环体语句只执行一次

8.在C语言中,数组名可作为实在参数传递给函数的形式参数,此时,作为实在参数的数组名被处理为  (8)     。

A. 该数组的长度              B. 该数组的元素个数

C. 该数组中元素的值          D. 该数组的首地址

9.以下关于函数定义的叙述中,正确的是  (9)     。

A. 构成C语言源程序的基本单位之一是函数定义

B. 所有被调用的函数必须在调用之前定义

C. main函数的定义必须放在其他函数定义之前

D. 定义main函数时,main函数的函数体内必须至少包含一条语句或声明

10.设有下列程序段:

    struct person{char name[9]; int age; };

    struct person class[10]={“John”,17, “Paul”,19, “Mary”,18, “adam”,16};

则下列选项中,能打印出字母“M”的语句是   (10)      。

A. printf(“%c\\n”,class[3].name);

B. printf(“%c\\n”,class[3].name[1]);

C. printf(“%c\\n”,class[2].name[1])

D. printf(“%c\\n”,class[2].name[0])

11.以下能将字符串“good!”正确地存放在字符数组s中,或使指针变量s能正确地指向这个字符串的是(11)      。

A. char s[5]={‘g’, ‘o’, ‘o’, ‘d’, ‘!’};

B. char s[5];s=“good!”;

C. int s[5]=“good!”;

D. char *s;s=“good!”;

12.若有语句:

char s1[10],s2[10]=“books”;

则下列表示中,能正确地将字符串“books”赋给数组s1的是   (12)     。

A. s1={“books”}                  B. strcpy(s1,s2)

C. s1=s2                           D. strcpy(s2,s1)

13.以下正确的函数说明语句是   (13)    。

A. int fun(int a, b)             B. float fun(int a; int b)

C. double fun()                  D. int fun(char a[][])

14.设有说明语句

     char *s=“abcd”;

则执行s+=2后,*s的内容是   (14)     。

A. a            B. b             C. c              D. cd

15.下列对typedef的叙述中,错误的是   (15)      。

A. 用typedef可以增加新类型

B. 用typedef可以定义各种类型名,但不能用来定义变量

C. 用typedef只是将已存在的类型用一个新的标识符来代表

D. 使用typedef有利于程序的通用和移植

二、填空题(每空1分,共20分)

1.一个C语言源程序是由若干个(1)     组成的;C语句的分隔符是(2)    。

2.程序的三种基本控制结构分别是(3)       、选择和(4)          。

3.数学表达式“”所对应的C语言表达式为(5)                。在C程序中要计算这样的表达式,通常必须包含头文件(6)            。

4.在C语言中,声明变量的格式为:

    存储类别  类型名  变量名表;

其中,变量有四种存储类别,它们分别是(7)            、register、extern和(8)             。

5.若有定义:“int a[3][4]={{1,2,3},{4,5},{6,7,8}}; ”,则执行该说明语句后,a[1][2]=(9)          ,a[2][1]=(10)                 。

6.在C程序中,若有函数定义如下:

  void f()

   { static int i;

     …   }

其中,void表明函数f(11)          ;而i是一个(12)          整型变量。

7.在C语言程序设计中,预处理命令行必须以(13)               开头,该命令是在 (14)             被处理的。

8.若一结构的成员项是指向本结构类型的结构指针,则称该结构为(15)      。定义这种结构类型的一般形式如下:

         struct node {   int data;

                         (16)          next;

                      };

9.在C语言源程序中,函数内部说明局部变量时若缺省了存储类型,则该变量的存储类型为(17)          ;定义一个函数时,若缺省该函数返回值的类型,则默认返回值为 (18)         型。

10.设有以下说明语句:

struct student { int x;

                 int *y;

               };

int dt[4]={1,2,3,4};

struct student a[4]={10, &dt[3], 20, &dt[2], 30, &dt[1], 40, &dt[0]}, *p=a;

则表达式++p->x的值为(19)       ,表达式*(++p)->y的值为(20)       。

三、阅读程序写出结果(每小题4分,共20分)

1.下列程序的运行结果是                    。

#include 

main()

{ int s=0,n=135;

  do{ s+=n%10;

     n/=10;

    }while(n);

  printf(“%d\\n”,s);

  getch();

2.下列程序的运行结果是                     。

#include 

void f(int x,int y)

   { int t;

     t=x;x=y; y=t;

   }

   main( )

   { int a=1,b=100;

     f(a,b);

     printf (“%d,%d\n”,a,b);

     getch();

   }

3.以下程序运行的结果是                      。

 #include 

 #include 

 main()

    { int i;

      for(i=0;i<3;i++)

         printf("%3d ",f(i));

      getch();

    }

   f(int x)

   { int y=0;

     static int z=1;

     y++,z++;

     return(x+y+z);

    }

4. 下面程序段运行的结果是__________________。 

#include 

#include 

    main()

     { int i=1,j=0,m=1,n=1;

       switch(i)

         { case 1:m++;n++;

           case 2:switch(++j)

                  { case 1:m++;break;

                    case 2:n++;

                  }

           case 3:m++;break;

           case 4:n++;

         }

       printf("%d,%d\\n",m,n);

       getch();

    }

5. 下面程序段运行的结果是__________________。 

#include 

#include 

 main()

  {  char ch[7]=“1234”;

     int i,s=0;

     for(i=strlen(ch)-1; i>=0; i--)

         s=s*10+ch[i]-‘0’;

     printf(“%d\\n”,s);

     getch();

  }

四、完善程序题(每空1分,共30分)

1.以下程序的功能是统计正整数的各位数字中零的个数,并求出各位数字中的最大者。请填空。

#include   

main ( )

   { long int n,t;

     int count=0, max=0;

     scanf ("%ld", &n);

     while(n)

     {  t=   (1)             ;

        if (t==0) count++;

        else if(max           (2)             ;

       } 

     printf("count=%d,max=%d\\n",count,max);

     getch();

  }

2.以下程序的功能是把从键盘上输入的十进制数n以八进制数的形式输出,请填空。

#include 

main()

{

  int c[],i=0,base=8; 

  long n;

  printf("Enter a number:\\n");

  scanf("%ld",&n);

  do{ c[i++]=    (3)             ;

         (4)             ;

     }while(n);

  printf("Transmite new base:\\n");

  for(--i;i>=0;--i)

      printf("%d    (5)             );

  printf("\\n");

  getch();

}

3.程序中函数double mycos(double x)的功能是:根据下列公式计算cos(x)的近似值,直到某一项的绝对值小于10-6为止。在主函数中输入x值,输出cos(x)的值。请填空。

   

#include 

#include 

#include 

double mycos(double x)

{  int n=1;

   double sum=0,term=1.0;

       while((6)              )

       {   sum+=term;

           term*=(7)                  ;

           n=n+2;

       }

       return sum;

}

main()

{

  double x;

  scanf("%lf",&x);

  printf("cos(%lf)=%lf\\n",x,(8)               );

  getch();

 }

4.设有函数pow定义如下:

        pow(int x,int y)

        { int i,j=1;

          for(i=1;i<=y;++i)j=j*x;

          return (j);

        }

下列改变后的函数欲取消上述函数中的局部变量i而使pow的功能不变。请填空。

       pow(int x,int y)

        { int j;

          for((9)         ;(10)         ; (11)        )j=j*x;

          return (j);

        }

5.设有一表头结构如下:

numnamebirthday
daymonthyear
其中,num为长整型;name为长度不超过10的字符串型;day和year为整型;month为长度不超过3的字符串型。下列程序段用于设计一结构类型描述上述结构。请填空。

    struct date

      { int day; char month[4]; int year; };

    struct stu

      { (12)                    ;

        (13)                    ;

        (14)                    ;

      };

6.有如下说明和变量的定义:

struct node

   { 

      char data;

      struct node  *link;

    }*p,*q;

设p、q已分别申请到一个结点空间,现要求把结点q连接到结点p之后。写出建立如下图所示的存储结构和赋值所需的语句。

                 data   link              data   link

                 

                 ↑p                       ↑q

     

scanf(“%c%c”,&p->data,&q->data); /*输入数据为:59<回车> */

(15)                   ;         /*结点q连接到结点p之后*/

(16)                  = NULL;

6.一个简易的明码密码对照表如下:

aceghjlnP\\0
fonptiude\\0
以下程序中函数void encode(char *s1, char *s2)的功能是完成一个字符串的加密,将s1字符串中的字符经过变换后保存到s2指向的字符数组中。二维数组cs用于保存了上述明码密码对照表,第一行是明码字符,第二行是对应的密码字符。加密方法:从s1字符串中每取一个字符,均在cs表第一行中查找有无该明码字符,若找到则将对应的密码字符放入s2中,否则将s1中原来的字符放入s2中。

#include 

#include 

char cs[2][10]={"aceghjlnp

void encode(char *s1,char *s2)

{  int n,i,j;

  for(n=0;s1[n]!='\\0';n++)

  {  for(i=0;i<10 &&  (17)              ; i++);

     if(  (18)               ) s2[n]=s1[n];

     else s2[n]=   (19)               ;

  }

  s2[n]='\\0';

}

main()

{ char ts[80]="jntwrnwt",td[80];

  encode( (20)            );  

  puts(ts); puts(td);

  getch();

}

8.以下程序在b数组中查找与y值相同元素的所在位置。

main()

{  int b[20] ,y, i;

   printf(“Enter 10 Integers:\\n”);

   for(i=0; i<20; i++)

        scanf(“%d”,b+i);

   printf(“Enter y:”); 

   scanf(“%d”,&y);

   (21)                 ;

   while(i<20) 

    {  if( (22)              )  break;

       ++i; 

    }

   if(  (23)              )

        printf(“%5d ’s position is %4d\\n”,y,i);

   else

        printf(“%d is not found!\\n”,y);

}

9.函数char *conj( char *p1 , char *p2)的功能是实现将两个字符串p1和p2连接起来(要求该函数返回字符串p1的首地址),请填空。

 #include 

 char *conj( char *p1 , char *p2)

  { char *p=p1;

    while(*p1)  (24)                  ;

    while(*p2) {  (25) ____________; p1++; p2++; }

    *p1=’\0’;

    return (26)                ;

  }

main()

{ char s1[30],s2[10],*p;

  gets(s1);  gets(s2);

  p=conj(s1,s2);  printf(“%s\\n”,p);

}

10.以下程序对一组点坐标(x,y)按升序进行排序。要求:先按x的值排序,若x的值相同,则按y的值排序(排序算法为直接选择排序)。请填空。

#include 

#define N 5

typedef  struct

        {  int x;

           int y ;

        }POINT;

void point_sort(POINT *x,int n)

{  POINT t;

   int i,j,k;

   for(i=0;i      {  (27)                ;

         for(j=(28)          ;j           if((x[k].x)>(x[j].x)) k=j;

           else if((29)               &&x[k].y>x[j].y)k=j;

         if((30)                )

            {t=x[i],x[i]=x[k],x[k]=t;}

      }

}

main()

{ POINT a[N];

   int i=0;

while(i   { scanf(“%d%d”,&a[i].x,&a[i].y);

i++;

}

   point_sort(a,N);

for(i=0;i        printf(“\\n%d,%d”,a[i].x,a[i].y);

}

 200706

一、单选题(每小题2分,共30分)

16.用于结构化程序设计的3种基本结构是    (1)     。

A. 顺序结构、选择结构、循环结构    B. if, switch, break

C. for, while, do-while            D. if , for, continue

17.下列各组中不全是合法变量名的是   (2)      。

A.  day , lotus_1_2_3 , x1        B.  Abc , _above , basic

C.  M.John , year , sum            D.  YEAR , MONTH , DAY

18.C语言中,下列运算符中运算对象必须是整型的是    (3)     。

A.%=        B. /            C. =        D. <=

19.能在C语言中定义三个整型变量a、b、c,并能给它们均赋值5的正确表示是

    (4)     。

A. int a=b=c=5;                B. int a,b,c=5;

C. int a=5,b=5,c=5;            D. a=b=c=5;

20.设有数学命题“当整数a的值为偶数时,表达式的值为真,否则为假”,则下列C语言表达式中,不能满足该数学命题要求的是   (5)     。

A.a%2==0        B. !(a%2==1)        C. !(a%2)      D. a%2

21.若有说明语句:

    char c=’\72’;

则变量c   (6)   。

A. 包含1个字符                B. 包含2个字符

C. 包含3个字符                D. 说明不合法

22.在C语言中,break语句 (7)        。

A. 能用在C源程序中的任何位置        B. 只能用在循环体内

C. 只能用在循环体内或switch语句中    D. 可用作函数内的任一语句

23.设有程序段:

    int x=-1;

    do {

         x=x*x;

        }

    while (!x);

则下列叙述中正确的是    (8)      。

A. 循环是无限循环            B. 循环体语句执行1次

C.    循环体语句执行2次            D. 有语法错误

24.在C语言中,数组名可作为实在参数传递给函数的形式参数,此时,作为实在参数的数组名被处理为  (9)     。

A. 该数组的长度            B. 该数组的首地址

C. 该数组中元素的值        D. 该数组的元素个数

25.以下叙述中,正确的是  (10)     。

A. C语言源程序总是从第一个函数开始执行

B. 在C语言程序中,调用函数必须在main()函数中定义

C. C语言源程序总是从main()函数开始执行

D. C语言程序中的main()函数必须放在程序的开始地方

26.若已定义的函数有返回值,则以下关于该函数调用的叙述中,错误的是(11)      。

A. 函数调用可以作为的语句存在

B. 函数调用可以作为一个函数的实参

C. 函数调用可以出现在表达式中

D. 函数调用可以作为一个函数的形参

27.设有下列程序段:

    struct p{char name[9]; int age; };

    struct p class[10]={“John”,17, “Paul”,19,“Mary”,18,“Adam”,16 };

则下列选项中,能打印出字母“P”的语句是   (12)      。

A. printf(“%c\\n”,class[1].name[0]) 

B. printf(“%c\\n”,class[2].name[0]);

C. printf(“%c\\n”,class[1].name[1]);

D. printf(“%c\\n”,class[2].name);

28.若有以下调用语句,则错误的fun函数的首部是 (13)       。

main()

{  int a[50],n;   ……

   fun(n,&a[9]);   ……  }

A. void fun(int m,int x[])        B. void fun(int s,int h[50])

C. void fun(int p,int *s        D. void fun(int m,int a)

29.设有说明语句

     char *s=“abcd”;   s+=2;

则 *s的内容是   (14)     。

A. a        B. b            C. c        D. cd

30.下列对typedef的叙述中,错误的是   (15)      。

A. 用typedef可以增加新类型

B. 用typedef可以定义各种类型名,但不能用来定义变量

C. 用typedef只是将已存在的类型用一个新的标识符来代表

D. 使用typedef有利于程序的通用和移植

二、填空题(每空1分,共20分)

11.C语言源程序是由函数构成的,一个C源程序至少包含一个 (1)     函数。对C程序中的任何部分可用 (2)         作注释。

12.调用C语言标准库函数时要求用(3)          预处理命令,strcat函数的作用是(4)               。

13.数学表达式“”所对应的C语言表达式为(5)            。在C程序中要计算这样的表达式,通常必须包含头文件(6)              。

14.C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是_(7)_____;数组名作为实参时,传递给对应形参的是数组的_(8)_  _________。

15.若有定义:“ int a[3][4]={{1},{2,3},{4,5,6}}; ”,则执行该说明语句后,a[0][1]=(9)          ,a[2][1]=(10)           。

16.在C程序中,若有函数定义如下:

  void f()

   { static int i;

     …

   }

其中,void表明函数f(11)          ;而i是一个(12)          整型变量。

17.关系表达式x18.在C语言源程序中,函数内部说明局部变量时若缺省了存储类型,则该变量的存储类型为(15)          ;定义一个函数时,若缺省该函数返回值的类型,则默认返回值为 (16)         型。

19.设有说明语句:

     char  *s="\a\\017bc";

则指针变量s指向的字符串所占的字节数是  (17)          。若有如下程序段:

     char  *s="\a\\018bc";

     for(   ; * s!=’\0’;  s++)printf("*");

则for循环体语句的执行次数是(18)          次。

20.若一结构的成员项是指向本结构类型的结构指针,则称该结构为(19)         。定义这种结构类型的一般形式如下:

         struct node {   int data;

                         (20)                      next;

                      };。

四、阅读程序写出结果(每小题4分,共20分)

4.下列程序的运行结果是                          。

#include 

main()

{ int s=1,n=235;

  do{ s*=n%10;

     n/=10;

    }while(n);

  printf(“%d\\n”,s);

}

5.下列程序的运行结果是                           。

#include 

void f(int x,int y)

   { int t;

     t=x;x=y; y=t;

   }

   main( )

   { int a=1,b=10;

     f(a,b);

     printf (“a=%d,b=%d\n”,a,b);

   }

6.以下程序运行的结果是                              。

 #include 

#include 

main()

   { int  i,k;

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

        { k=sub(&i);

          printf("%4d",k);

        }

     printf("\\n");

    }

int sub(int *s)

    { static int t=0;

      t=*s+t ;

      return t;

    }

4. 下面程序段运行的结果是__________________。

#include 

#include 

    main()

    {  int i,j=3;

       for(i=j;i<=2*j;i++)

          switch(i/j)

           { case 0:

             case 1: printf ("*");break;

             case 2: printf ("#");

           }

    }

5. 下面程序段运行的结果是__________________。 

#include 

#include 

 main()

  {  char *p="987";

     int i,s=0;

     while(*p)

       { s=s*10+*p-'0';

         p++;

       }

     printf("%d\\n",s);

  }

四、完善程序题(每空1分,共30分)

1.下列程序的功能是按5个一行输出100至1000之间各位数字之和是5的数,并统计这些数的个数。请填空。

#include 

#include 

main( )

{  int s,i,k,count=0;

   for(i=100;i<=1000;i++)

    { s=0;  k=i;

      while(k)

        { s=s+k%10;

          k= (1)            ;

        }

      if ((2)             )

        {  count++;

           if(count%5==0) printf("%5d\\n",i);

           else   printf("%5d",i);

        }

     }

   printf("\\n%5d",count);

}

2.以下程序在a数组中查找与x值相同的元素的所在位置。请填空。

#include 

#include 

main()

  { int  a[11],x,i;

    printf("Enter 10 Integers;\\n");

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

      scanf("%d",a+i);

    printf("Enter x;");

    scanf("%d",&x);

    a[0]= (3)             ;

    i=10;

    while(x!=a[i]) (4)             ;

      if((5)             )

          printf("%5d's position is:%4d\\n",x,i);

      else

          printf("%d  Not  been  found !\\n",x);

   }

3.以下程序的功能是用二分法求方程2x3-4x2+3x-6=0的根,并要求绝对值误差不超过0.001。请填空。

#include 

#include 

#include 

float f(float x)

  { float y;

    y= (6)                                   ;

    return y;

  }

main()

 { float m=-100,n=90,r;

   r=(m+n)/2;

   while((7)                       )

    { if(f(r)*f(n)<0)

         m=r;

      else n=r;

       (8)                    ;

    }

  printf("This fangcheng jie is%6.3f\\n",r);

}

4.两个等长的二进制数之间的海明距离是指对应位数字不同的位数。如100101和001110之间的海明距离为4。设计算机系统使用16个二进制位表示一个十进制整数,试按下列要求编写程序:

(1) 编写函数void  DecToBin(char str[], int n),其功能是将非负整数n转换成16位二进制数字字符串,按由低位向高位存入数组str中;

(2) 编写函数int Hymin(char *x , char *y),其功能是统计x、y指向的两个16位二进制数字字符串对应位数字不同的位数,并返回统计结果;

(3) 在主函数中输入两个十进制正整数39和15,分别调用函数DecToBin将它们转换为二进制数字字符串,再调用函数Hymin计算它们之间的海明距离。将这两个十进制数转换后的二进制字符串及其海明距离输出。

测试数据及结果:

      distance of 39 and 15 = 2 

[源程序]

#include 

#include 

void DecToBin(char str[] , int n)

   {   int i=0,j;

       while(n!=0)

          {  str[i++]= (9)             ;

              (10)             ;

            }

       for(j=i;j<16;j++) str[j]='0';

   }

    

int Hymin(char x[],char y[])

   {   int count=0, i ;

       for(i=0; i<16 ; i++)

          if((11)                 )

             count++;

       return count;

   }

main()

   { int m,n;

     char  a[17],b[17];

     scanf("%d%d",&m,&n);

      (12)                            ;

      (13)                            ;

     printf("distance of %d and %d=%d\\n",m,n, (14)             );

   }

5.以下程序的功能是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请填空。

#include 

#include 

main ( )

   { float x,max,min;

     scanf ("%f (15)             );

     max=x; min=x;

     while ((16)             )

       { if ((17)             ) max=x;

         if ((18)             ) min=x;

         scanf("%f",&x);

       }

     printf("\\nmax=%f\\nmin=%f\\n", max,min);

   }

6. 设有一表头结构如下:

namesexbirthdate
daymonthyear
其中,name为长度不超过10的字符串型;sex是字符型;day和year为整型;month为长度不超过3的字符串型。下列程序段用于设计一结构类型描述上述结构。请填空。

    struct date

        { int day; char month[4]; int year; };

    struct stu

         { (19)                                  ;

           (20)                                  ;

           (21)                                  ;

         };

7.有如下说明和变量的定义:

struct node

   { 

      int data;

      struct node  *link;

    }*p,*q;

设p、q已分别申请到一个结点空间,现要求把结点q连接到结点p之后。写出建立如下图所示的存储结构和赋值所需的语句。

                 data   link              data   link

                 

                 ↑p                       ↑q

scanf(“%d%d”,&p->data,&q->data); /*输入数据为:59<回车> */

(22)                       ;         /*结点q连接到结点p之后*/

(23)                       = NULL;

8. 函数char *conj( char *p1 , char *p2)的功能是实现将两个字符串p1和p2连接起来(要求该函数返回字符串p1的首地址),请填空。

 #include 

 char *conj( char *p1 , char *p2)

  { char *p=p1;

    while(*p1)  (24)                  ;

    while(*p2) { *p1=  (25) ______; p1++; p2++; }

    *p1=’\0’;

    return (26)                ;

  }

main()

{ char s1[30],s2[10],*p;

  gets(s1);  gets(s2);

  p=conj(s1,s2);  printf(“%s\\n”,p);

}

9. 程序功能:将一字符串做压缩处理。编程要求:

(1) 编写一个函数int compress(char  s[]),将s中连续出现的多个相同字符压缩为一个字符,统计被删除的字符个数,返回被删除的字符个数。

(2) 编写主函数main,从键盘读入一行字符数据放入一个字符型数组中,调用compress函数对该字符数组中字符做压缩处理,输出压缩后的字符串。

(3) 测试数据及结果如下:

    测试数据:@@@@@ I  wwillll successful

    测试结果:@ I wil successful

          11

#include 

#include 

#include 

main ( )

   { char s[]="@@@@@ I  wwillll successful";

     int n;

     n= (27)             ;

     puts(s);

     printf("\\n%d\\n",n);

   }

int compress(char s[])

{ char *p=s,*q;

  int n=0;

  while(*p)

    { q=p+1;

      while((28)             )

        { q++;

          n++;

        }

      strcpy((29)             );

      p++;

    }

  (30)             ;

 }

程序设计题(附加题!每小题10分,共20分) 注,程序设计题最终没考

1.求满足下列条件的三位数n,它除以11(整数相除)所得到的商等于n的各位数字的平方和,且其中至少有二位数字相同的数。如:131,它除以11的商为11,各位数字的平方和为11,又如550,也是满足条件的三位数。

2.设n0是一个给定的正整数。对于i=0,1,2,…,定义:若ni是偶数,则ni+1=ni/2;若ni是奇数,则ni+1=3ni+1;若ni是1,则序列结束。用这种方法产生的数称为冰雹数(hailstone)。请编写一个函数void hailstones(int n),其功能是显示由n产生的序列,并按如下形式输出。

    Hailstones   generated   by  77:

    77   232   116   58   29   88

    44   22    11    34   17   52

    26   13    40    20   10   5

    16   8     4     2    1

    Number of hailstones generated:23

文档

扬州大学C语言0606、0706期末试题

200606一、单选题(每小题2分,共30分)1.下列表示中,不是C语言合法字符常量的是(1)。A.‘\0xff’B.‘\65’C.‘$’D.‘\x2a’2.设有如下定义:floaty=3.45678;intx;则下列表达式中能实现将y中数值保留至小数点后2位,小数点后第3位四舍五入的表达式是(2)。A.y=(y*100+0.5)/100.0B.x=y*100+0.5,y=x/100.0C.y=y*100+0.5/100.0D.y=(y/100+0.5)*100.03.下列表示中,能在C语言中
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top