习题一 C语言基础知识
1、写出一个C程序的构成
2、编写一个C语言程序,输出以下信息:
* * * * * * * * * *
How are you!
* * * * * * * * * *
3、编写C程序,输入a、b、c的值,输出他们的最小值
4、C语言的变量先定义后引用的好处?
5、字符常量和字符串常量的区别是什么?
6、求下面算术运算表达式的值
(1)x + a%3*(int)(x+y)%2/4  设:x=2.5,a=7,y=4.7
(2)(float)(a+b)/2 + (int)x%(int)y 设:a = 2,b = 3,x=3.5,y = 2.5
7、写出下列程序的运行结果:
main ( )
{ int i , j , m ,n;
i = 5;
j =11;
m  = --i;
n = j--;
printf(“%d,%d,%d,%d”,i,j,m,n);
}
8、写出下面表达式运行后a的值,假设a = 12,n=5;
(1)a+=a  (2) a-=2; (3) a*=2+3  (4)a/=a+a
(5)a%=(n%=2)  (6)a +=a-=a*=a
9、出下面程序中的错误并改正。
(1)void main( )
{  int x,y=z=5,aver;
  x=7
  AVER=(x+y+z)/3;
  Printf(“AVER=%d\n”,aver);
}
(2)void main( )
{  char c1 = ‘a’ ;c2 = ‘b’;c3=’c’;
  int a = 3.5,b=’A’
  printf(“a=%db=%c,a,b);
  printf(“c1=%d,c2=%c”,c1,c2;
c语言搜题软件推荐}
10、写出上机的过程。(即要求背诵的上机过程)
习题二 顺序结构
1、使用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。在键盘上如何输入?
void main( )
{
  int a,b;
  float x,y;
  char c1,c2;
  scanf(“a=%d  b=%d”,&a,&b);
  scanf(“  %f  %e”,&x,&y);
  scanf(“  %c  %c”,&c1,&c2);
}
2、设圆的半径为r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果。
3、输入一个华氏温度,要求输出摄氏温度,公式为:
c = 5/9(F-32)
4、编写程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数
输出这两个字符。并思考以下问题:(1)变量c1、c2应定义为字符型还是整型?还是都可以?(2)要求输出c1和c2值的ASCII码,应如何处理?用putchar函数还是printf函数?
(3)整型变量与字符变量是否在任何情况下都可以互相代替?
5、写出以下程序的输出结果:       
  void main( )
  {
int a1=1,a2=0;a3=2;
printf(“%d,%d,%d”,a1,a1+a2+a3,a3-a1);
  }
6、已知变量定义如下:
  int a1,a2;
  char c1,c2;
  要求输入a1、a2、c1、c2的值,正确的输入函数语句为:         
7、输入一个3位数,将其各数字反序输出(如输入456,输出654)
8、求前驱字符和后继字符。输入一个字符,出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这3各字符及其对应的ASCII码值。
9、分析下列程序的租用:
  # include <stdio.h>
  void main( )
  { 
putchar(getchar()-32);
  }
  若从键盘上输入小写字母a,则输出是什么?程序第一行#include命令的作用是什么?
10、将从键盘输入的实型十进制数分离位整数部分和小数部分后输出。如输入123.45,输出位:123.45=123+0.45
习题三 选择结构
1、什么时算术运算?什么时关系运算?什么时逻辑运算?
2、C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?
3、从键盘输入3个整数a,b,c,输出其中最大的数。
4、给出一个不多于5位的整数,求出它是几位数并打印出每一位数字?
5、输入一个由2个整数和一个算术运算符组成的表达式,根据运算符完成相应的运算,并将结果输出。例如:输入3  *  7,则输出为3*7=21, 输入5  +  3,则输出为5+3=8
6、假设所有变量都已经正确定义,则程序段:
int a=0,y=10;
if(a=0) y - - ;else if(a>0) y++;
else y+=y;
运行后y的值是       
7、能表示20<x<30或x>100或x<-100的C语言表达式为:             
8、输入整数a和b,如果a能被b整除,则输出商,如果由余数,则输出商和余数。
9、输入年好和月份,输出这一年该月的天数。
10、由一个函数
                  x – 1  -5<x<0
y =            x    x = 0
              x+1    0<x<8
假设x为整数,编写一个程序输入x的值,输出y值。分别用三种方法写出程序:
(1)不用嵌套的if语句
(2)用嵌套的if语句
(3)用switch语句编写
11、把程序补充完整。从键盘输入字符,若是数字字符,则转换成数字后输出。(注:数字=相对应的数字字符-48,即5 = ‘5’-48 )
#include <stdio.h>
void main( )
{  int c;
  c = getchar( );
  if(      )
{  (      )
printf(“%d”,c);
          }
}
12、用一组逻辑表达式来简化下列嵌套if语句中的条件(a和b达标条件,A和B代表语句)
(2)if(a)  A;
else if(b) A
  else  B;
(1)if(a)
if(b)  A;
else  B;
    else  B
习题四  循环结构
2、分析下列程序的输出结果:
# include <stdio.h>
void main( )
{  int i,j,k=0,m=0;
  for(I=0;I<2;I++)
  {
for(j=0;j<3;j++)
  k++;
k-=j;
}
m=i+j;
printf(“k=%d,m=%d\n”,j,m);
}
1、分析下列程序的输出结果:
# include <stdio.h>
void main( )
{  int i,j,x=0;
  for(i=0;i<2;i++)
{  x++:
for(j=0;j<3;j++)
{  if(j%2) continue;
  x++;
}
x++;
}
printf(“x=%d”,x);
}
3、求出100以内的整数中最大可以被13整除的那一个数,将程序补充完整。
  void main ( )
  {  int  i ;
for(      ;         ;i--)
{  if(            ) break; }
printf(“%d\n”,i);
  }
4、输入两个正整数m和n,求其最大公约数和最小公倍数。
5、输入一行字符,统计其中英文字符、空格、数字和其它字符的个数。
6、打印出所有的“水仙花数“,水仙花数是一个3位数,其各位数字立方和等于该数本身。
7、一个数如果恰好等于它的因子之和,这个数就称为完数,编程出1000以内的所有完数,并输出其因子。
8、求出分数序列2/1,3/2,5/3,8/5,13/8,21/13,……前20项之和
9、
          *
          ***
        *****
        *******
        *****
          ***
          *
打印九九乘法表
10、打印右边的*号图案:
11、有一个八层灯塔,每层所点灯数都等于上一层的2
倍,一共有765盏灯,求塔底灯数。
12、求3~150以内的所有素数之和。
13、百马百担问题,有100匹马,驮100担货,大马驮3
    3担,中马驮2担,两匹小马驮一担,编程计算共有多少种驮法。     

习题五 数组编程题
1、用筛法求100之内的素数
2、用选择法和起泡法对10个整数排序
3、已有一个已经排好序的数组,输入一个数,要求按原来的排序规律将它插入到数组中
4、将一个数组中的数按逆序存放,如:1 6 5 9 2 变成 2 9 5 6 1
5、编写一个程序将两个字符串连接起来,不用strcat函数
6、输入一行字符串,统计该字符串中字符对ab个数,如:字符串:abcabacda,则个数为:2
7、把一个字符串头和尾部的“*”去除,如:***abc**def***,变为:abc**def
8、把一个字符串中间的“*”去除,如:**a**b**c*def***,变为:**abcdef***
9、已知数组a和数组b中分别存放了若干个有序整数,现在将a和b中的数按顺序存放在c中,如:a[]={1,3,5,7,9,11} b[]={2,4,6,8},则c[]={1,2,3,4,5,6,7,8,9,11}

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