奥鹏作业答案-谋学网-专业的奥鹏在线作业答案辅导网【官网】

 找回密码
 会员注册

微信登录,扫一扫

手机号码,快捷登录

VIP会员,3年作业免费下 !奥鹏作业,奥鹏毕业论文检测新手作业下载教程,充值问题没有找到答案,请在此处留言!
2022年5月最新全国统考资料投诉建议,加盟合作!点击这里给我发消息 点击这里给我发消息
奥鹏课程积分软件(2021年最新)
查看: 2021|回复: 0

华东石油11春《C语言》课程综合复习资料

[复制链接]
发表于 2011-7-19 17:51:03 | 显示全部楼层 |阅读模式
谋学网
《C语言》课程综合复习资料
一、单选
1. 在C语言中,字符型数据在内存中的存储形式是
    A)原码       B)补码      C)反码      D)ASCII码
2. 在C语言中,十进制数47可等价地表示为
A)  2f      B)  02f       C)  57       D)  057
3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为
A)  0      B) 1       C) 2      D) 3
4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str;
则printf("%d\n",strlen(p+20)); 输出结果是
A)10      B) 6       C) 0       D) 20
5. 已定义以下函数:   fun(int *p)
{  return *p;  }
该函数的返回值是  
A)不确定的值                    B)形参p所指存储单元中的值
C)形参p中存放的值              D)形参p的地址值
6. C语言中,函数返回值的类型是由
A)return语句中的表达式类型决定
B)调用函数的主调函数类型决定
C)调用函数时的临时类型决定
D)定义函数时所指定的函数类型决定
7. 有以下函数定义:
       void  fun( int  n , double  x )  { …… }
   若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
   A) fun( int  y , double  m );    B) k=fun( 10 , 12.5 );
C) fun( 10 , 12.5 );                      D) void  fun( 10 , 12.5 );
8. 以下选项中不能正确赋值的是
A)  char  b[]={′H′,′e′,′l′,′l′,′o′,′!′};
B)  char  b[10];b="Hello!";
C)  char  b[10]= "Hello!";
D)  char  *str="Hello!";
9. 若有以下定义:char s[20]= "programming",*ps=s;则不能代表字符g的表达式是
A) ps+3             B)s[3]              C) ps[3]              D) ps+=3,*ps
10. 当对两个字符串进行比较时,应该使用的函数是
A) strcat       B) strcmp      C) strcpy      D) strlen
11. 若i为整型变量,则以下循环的次数是
for(i=2;i==0;)printf(“%d”,i--);
A) 无限次      B) 0次      C) 1次      D) 2次
12. 以下关于数组的描述正确的是
A) 数组大小固定,但是可以有不同类型的数组元素
B) 数组大小可变,但是所有数组元素的类型必须相同
C) 数组大小固定,所有元素的类型必须相同
D) 数组大小可变,可以有不同类型的数组元素
13.  以下能正确定义数组并正确赋初值的语句是
    A)int N=5,b[N][N];                  B)int a[1][2]={{1},{3}};
    C)int c[2][]= {{1,2},{3,4}};        D)int d[3][2]={{1,2},{34}};
14.  设有定义  int a[ ]={1,5,7,9,11,13}, *p=a+3; 则*(p-2) , *(a+4) 的值是
A)5  11     B)1  9     C)5  9     D)有错误
15.  已知char b[5],*p=b; ,则正确的赋值语句是
A)b=“abcd” ;   B)*b=“abcd”;    C) p=“abcd”;     D)*p=“abcd”;
16. 用数组名作为函数调用时的实参,则实际传递给形参的是
A)数组的第一个元素值      B)数组中全部元素值
C)数组的首地址            D)数组的元素个数
17. 以下叙述中不正确的是
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效
18. 当对两个字符串进行比较时,应该使用的函数是
A) strcat       B) strcmp       C) strcpy        D) strlen
19. 有如下定义:long  m;char  c;float  x;double  y;则表达式c+m*x/y的值的类型是
A) long               B) char                  C) float                  D) double
20. 假设已定义 char  c[8]= "test";  int  i; 则下面的输出函数调用中错误的是
A) printf("%s",c);          B) for(i=0;i<8;i++)  printf("%c",c);
C) puts(c)                   D) for(i=0;i<8;i++)  puts(c);
21. 若有以下定义:char s[20]= "programming",*ps=s;则不能代表字符g的表达式是
A) ps+3              B) s[3]             C) ps[3]           D) ps+=3,*ps
22. 以下选项中不能正确赋值的是
A) char  b[]={′H′,′e′,′l′,′l′,′o′,′!′};
B) char  b[10];b="Hello!";
C) char  b[10]= "Hello!";
D) char  *str="Hello!";
23. 有以下函数定义:
              void  fun( int  n , double  x )  { …… }
   若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是_________。
   A) fun( int  y , double  m );      B)  k=fun( 10 , 12.5 );
C) fun( 10 , 12.5 );                         D)  void  fun( 10 , 12.5 );
24.从变量的作用域来分,可分为全局变量和局部变量,形参是
A)局部变量          B)全局变量        C) 静态变量            D) 动态变量
二、读程序,写出程序的执行结果
1.  #include <stdio.h>
void main()
{  int x[]={1,2,3};
   int s,i,*p=x;
   s=1;
   for(i=0;i<3;i++)
      s*=*(p+i);
   printf(“%d\n”,s);
}
2.        #include <stdio.h>
char fun(char *s)
{        if( *s >= &#61602;a&#61602; && *s <= &#61602;z&#61602; )  
*s=*s-32;
return *s;
}
void main()
{        char a[20]="Welcome",*p,ch;
for(p=a;*p!=&#61602;\0&#61602;;p++)
{        ch=fun(p);
putchar(ch);
        }
}
3.        #include <stdio.h>
void main()
{        int x=26587,x1,r,sum=0;
x1=x;
while(x>0)
{        r=x%10;
sum+=r;
x/=10;
}
printf( "Sum of the digits in %d is %d", x1,sum);       
}
4.#include <stdio.h>
int fun(int x)
{        int y=1;
static int z=4;
z+=1;++y;
return(x+y+z);
    }
void main()
{        int i;
for(i=1;i<=3;i++)
printf("%3d",fun(i));
}
5.#include <stdio.h>
void main()
   {  int x=3,y=4;
      int j;
for(j=1 ; y>0 ; y -- )  j=j*x;
printf(“j=%d\n”,j);
}
运行结果:
6.#include <stdio.h>
void main()
{ int x,y;
    for(y=1,x=1; y<=20;y++)
    {  if(x>=8) break;
       if(x%2==1){ x+=5;  continue ; }
       x-=3;
    }
   printf("x=%d, y=%d\n",x,y);
}
运行结果:
7. #include <stdio.h>
void main()
{ char  x[]="language";
char *ptr=x;
while(*ptr)
  {  printf("%c\n",*ptr-32);
     ptr++;
  }
}
运行结果:
8. #include <stdio.h>
   void main()
   {  int x[]={5,6,7};
      int s=1,i,*p=x;
      for(i=0;i<3;i++)
        s*=*(p+i);
      printf(“%d\n”,s);
}
运行结果:
9.#include <stdio.h>
int fun(int x)
   {  return(x>0 ? x : -x);
}
void main()
{  int a=12;
   printf(“%d, %d\n”,a,fun(a))  ;
}
运行结果:
10. #include <stdio.h>
void ex( )
{  static int x=3 ;  
--x ;  
printf(“%d”,x) ;
}  
void  main ( )
{  ex( );  
ex( );  
  }
运行结果:
11.  #include <stdio.h>
void main()
{ int i=0,a=0;
while( i<20 )
{  for(;;)
if((i%10)= =0) break;
else i- -;
         i+=11;
         a+=i;
}
printf("%d\n",a);
}
12.        #include <stdio.h>
void main()
{        int a[3][4]={{1,2,3,4},{9,7,10,6},{-1,8,-5,5}};
int i,j,row=0,colum=0,max;
        max=a[0][0];
        for(i=0;i<=2;i++)
                for(j=0;j<=3;j++)
                        if(a[j]>max)
                        {        max=a[j];
                                row=i;
                                colum=j;
                        }
        printf("max=%d,row=%d,colum=%d",max,row,colum);
}
13.  #include <stdio.h>
int f(int b[], int m,int n)
    { int i,s=0;
      for(i=m;i<n;i+=2) s+=b ;   
  return s;
}
      void main()
     { int x, a[]={1,2,3,4,5,6,7,8,9,10};
       x=f(a,3,8);
       printf("%d\n",x);  
}
14.        #include <stdio.h>
void swap(int  b[])
{   int *p,*p1,*p2;
        p1=&b[0] ;p2=&b[1];
p=p1;  p1=p1+1;  p2=p;
}
void main()
{   int a[]={5,9};
printf("%d,%d\n",*a,*(a+1));
              swap(a);
                printf("%d,%d\n",a[0],a[1]);
}
15.  #include <stdio.h>
int  b=3;
int fun(int *a)
{  b+=*a;
return(b);
}
void main()
{  int a=2, b=2;
  b+=fun(&a);
printf(“%d\n”,b);
}
16.  #include <stdio.h>
void main()
     { int a[10],*p,*s,i;
      for(i=0;i<10;i++)  scanf(%d”,a+i);
      for(p=a,s=a;p-a<10;p++)  if(*p>*s)s=p;
       printf(“max=%d,index=%d\n”,*s, s-a);
}
简述上列程序完成的功能:
17. #include <stdio.h>
void main()
{ int x,y;
  for(y=1,x=1; y<=20;y++)
   {  if(x>=8) break;
if(x%2==1){ x+=5;  continue ; }
      x-=3;   
}
printf(“x=%d, y=%d\n”,x ,y);
     }
18. #include <stdio.h>
#define N 3
void zz(int x[N][N])
{  int i,j,t;
for(i=0;i<N;i++)
for(j=0;j<i;j++)
{ t=x[j]; x[j]=x[j]; x[j]=t; }   
}         
void main()
{  int  str[N][N]={1,2,3,4,5,6,7,8,9}, i,j;
   zz(str);
for(i=0;i<N;i++)
{  for(j=0;j<N;j++) printf(“%3d”,str[j]) ;
printf("\n") ;  
      }
}
19.#include <stdio.h>
void main ( )
{  char  a[20]= "abcXYZ", c ;
   int  i,  j;
j= strlen(a)-1 ;
         for (i=0;  j>i;  i++,j--)
{  c=*(a+i); *(a+i)=*(a+j); *(a+j)=c;  }
         puts(a);   
}
20. #include <stdio.h>
int a=100,b=200;
void  f( )
{ printf(“%d,%d\n”,a,b);
  a=1;b=2;
}
void main()
{  int a=5,b=7 ;
   f( );
printf(“%d,%d\n”, a,b) ;
}
21. #include <stdio.h>
int d=1 ;
int fun(int p)
{ static int d=3 ;
        d+=p;
        printf("%3d" , d) ;
       return(d) ;
}
void main( )
{ printf("%3d\n" , fun(2+fun(d))) ;
}
22.#include <stdio.h>
void main()
{  char x[]="123456789",*p=x ;   
   int i=0;
   while(*p)
    {  if(i%2==0) *p='*’;
       p++; i++;
    }
  puts(x);
}
三、编程题
1.编程输入实数x,计算下面函数的值,并输出y值。
           x 2          x<1
    y=    3x-1        1 &#61603; x &#61603; 10
            x > 10
2.编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,并输出统计结果。
3. 编写打印如下图形的程序 (必须用循环语句实现)
*
* *
* * *
* * * *
* * * * *
4. 编写程序,从键盘上任意输入20个整数,存入一个数组中,然后输出这些数中最大数及其下标以及最小数及其下标
5.  编程打印下列的杨辉三角形。(设8行)
        1
        1  1
        1  2  1
        1  3  3   1
        1  4  6   4   1
        1  5  10  10  5  1
6.求分段函数的值   
7.编程打印以下图形 (要求用循环控制语句实现)
              &
            & &
          & & &
        & & & &
      & & & & &
    & & & & & &



《C语言》课程综合复习资料资料
一、单选题:
1D  2D  3A  4A  5D  6B  7C  8B  9A  10B  11B  12C 13D 14A  15C  16C  17D  18B  19D  20D  21A  22B  23C   24A
二、读程序写出程序执行结果:
1、6
2、WELCOME
3、Sum of the digits in 26587 is 28
4、8 10 12
5、j=81      
6、x=8,y=4      
7、L
A
N
G
U
A
G
E
8、210       9、12,12         10、21
11、32      12、max=10,row=1,colum=2      
13、18      14、5,9       15、7         16、查找数组中最大值并记录元素下标
17、x=8,y=4
18、1  4  7                   19、ZYXcba
2  5  8                   20、5,7
3  6  9                   21、5,12,12
22、*2*4*6*8*
三、编程题
1、#include <stdio.h>
void main()
{
  int x,y;
  scanf(“%d”,&x);
  if(x<1)
   y=x*x;
  else
       if(x>=1&&x<=10)y=3*x-1;
       else y=x/5;
    printf(“x=%d,y=%d\n”,x,y);
}
2. #include<stdio.h>
#include<conio.h>
void main()                     /*主函数*/
{
char c;                            /*定义变量*/
int m=0,n=0,a=0,b=0;
printf("请输入任意字符串.\n");   /*输入提示部分,提示输入*/
while((c=getchar())!='\n')       /*循环语句,将由键盘输入的非'\n'字符赋值给c*/
{
   if((c>=65&&c<=90)||(c>=97&&c<=122))    /*第一个选择语句,统计英文字符个数*/
   {
    m=m+1;
   }
         else if(c==32)                          /*第二个选择语句,统计空格字符的个数*/
   {
     n=n+1;
   }
   else if(c>=48&&c<=57)                        /*第三个选择语句,统计数字字符的个数*/
   {
    a=a+1;
   }
   else                                        /*统计其他字符的个数*/
    b=b+1;
}
printf("%d%d%d%d",m,a,n,b);                    /*输出最后统计结果*/  
  getch();                                    /*输出结果后屏幕停留*/
}
3. #include<stdio.h>
main( )
{
int n,i,j;
printf(“n=%d\n”);
scanf(“%d”,&n);
for(i=0;i<n;i++)
{
for(j=0;j<n-1-i;j++) Printf(“  ”);
for(j=0;j<i+1;j++) Printf(“*”);
printf(“\n”);
}

4. #include<stdio.h>
void main( )
{
int a[20],i,max,min,num1,num2;
for(i=0;i<20;i++)
{printf(“input the number%d:”,i);
scanf(“%d”,&a);
printf(“\n”);
}
for(i=0;i<20;i++)
{
  If(a<= a[0])
   {min=a;
Num1=i;
}
   Else
   {max=a;
num2=i;
}
}
printf(“min=%d,num1=%d\n”,min,num1);
printf(“max=%d,num2=%d\n”,max,num2);}

5. #include <stdio.h>
#define N 11
void main()
{
int i,j,a[N][N];              /*数组为11行11列,0行0列不用*/
for(i=1;i<N;i++)
{
a[1]=1;                  /*使第1列元素的值为1*/
a=1;                  /*使对角线元素的值为1*/
}
     for(i=3;i<N;i++)              /*从第3行开始处理*/
   for(j=2;j<=i-1;j++)
      a[j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<N;i++)              /*输出数组各元素的值*/
  {for(j=1;j<=i;j++)
     printf(“%6d”,a[j]);
    printf(“\n”);
  }
printf(“\n”);
}
6.7略
久爱奥鹏网:www.92open.com
奥鹏作业答案,奥鹏在线作业答案
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

 
 
客服一
客服二
客服三
客服四
点这里给我发消息
点这里给我发消息
谋学网奥鹏同学群2
微信客服扫一扫

QQ|关于我们|联系方式|网站特点|加入VIP|加盟合作|投诉建议|法律申明|Archiver|小黑屋|奥鹏作业答案-谋学网 ( 湘ICP备2021015247号 )

GMT+8, 2024-5-16 01:28 , Processed in 0.109973 second(s), 19 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表