第一篇 C语言程序设计基础
第一章 C语言基础
一、简答题
1.参考书P5图1-7。
2.因为C语言是强类型语言,语法规定必须先定义后使用,只有先定义,系统才能为其分配存储空间。
3.参考书P2。
二、填空题
1.    算法
2.  .C , .obj , .exe
3.    提出问题,构造模型,选择方法,编写程序,上机调试
4.    1
5.    sin(35.0) + x * cos(60.0)
6.    6
7.    0
三、改错题
1.    参考书上第二页,算法与程序的区别
2.    只能定义为一种类型
3.    必须先定义,后使用
4.    可以随时修改
5.    只有char型变量才只存储一个字节
6.    a还是实型变量
7.    b中的值不丢失
8.    i的类型不变
四、单选
1-5 BDCDC    6-10    DCBBD        11-15    CBADC        16-18    AAA
第二章 顺序结构、选择结构和循环结构的程序设计
一、简答
1.    参考书上23页
2.    while先判断,后执行,do while先执行,后判断,循环体至少执行一次
3.    参考书上29页
4.    continue,结束本次循环
    break,结束循环
区别在于,continue只结束本次循环重新进行下次循环,而break结束整个循环
二、填空题
1.    顺序结构,选择结构,循环结构
2.    if    else 和switch
3.    语句1 , 语句2
4.    零
5.    break , continue
6.    7 , 0
7.    > : , 双目
三、单选
1-5    DBDCC    6-10    DBADA    11-15    CBCDA        16-20    ACAAD    21-25    CDCBB        26-29    BCCA
四、程序分析题
1.    end      1end
2.    num%10      max = t
3.    j%3
4.    99
五、编程题
1.
#include <stdio.h>
int main(){
    char str[100] ;
    gets(str) ;
    int n1 , n2 , n3 , n4 , i ;
    n1 = n2 = n3 = n4 = 0 ;
    for(i = 0 ; str[i] != '\0' ; ++i) {
        if(str[i] >= 'A' && str[i] <= 'Z')
            ++n1 ;
        else if(str[i] >= 'a' && str[i] <= 'z')
            ++n2 ;
        else if(str[i] >= '0' && str[i] <= '9')
            ++n3 ;
        else
            ++n4 ;
    }
    printf("大写字母:%d\n" , n1) ;
    printf("小写字母:%d\n" , n2) ;
    printf("数字字符:%d\n" , n3 ) ;
    printf("其他字符:%d\n" , n4) ;
    return 0;
}
2.
#include <stdio.h>
#include <stdlib.h>
int main(){
    int array[4] , min , max , i ;
    for(i = 0 ; i < 4 ; ++i)
        scanf("%d" , &array[i]) ;
    min = max = array[0] ;
    for(i = 1 ; i < 4 ; ++i) {
        if(array[i] < min)
            min = array[i] ;
        else if(array[i] > max)
            max = array[i] ;
    }
    printf("min = %d , max = %d\n" , min , max) ;
    return 0;
}
3.
#include <stdio.h>
int main(){
    float money , lixi ;
    int year ;
    scanf("%f %d" , &money , &year) ;
    switch(year) {
        case 1 :
            lixi = money * 0.63 / 100 ;
            break ;
        case 2 :
            lixi = money * 0.66 / 100 ;
            break ;
        case 3 :
            lixi = money * 0.69 / 100 ;
            break ;
        case 5 :
            lixi = money * 0.75 / 100 ;
            break ;
        case 8 :
            lixi = money * 0.84 / 100 ;
            break ;
        default :
            printf("输入错误\n") ;
            return -1 ;
    }
    printf("%f\n" , money + lixi) ;
    return 0;
}
4.
#include <stdio.h>
int main(){
    int x , y ;
    scanf("%d" , &x) ;
    if(x > 100)
        y = x + 8 ;
    else if(x < -10)
        y = -x + 8 ;
    else
        y = 0 ;
    printf("%d\n" , y) ;
    return 0;
}
5.
#include <stdio.h>
int main(){
    int i , j , k , m = 3 ;
    for(k = 5 ; k < 12 ; k += 2 , --m) {
        for(i = 0 ; i < m ; ++i)
            printf(" ") ;
        for(j = 0 ; j < k ; ++j)
                printf("*") ;
        printf("\n") ;
    }
    return 0;
}
6.
#include <stdio.h>
int main(){
    printf("  *****\n") ;
    printf("  *      *\n") ;
    printf(" *        *\n") ;
    printf("*************\n") ;
    return 0;
}
第三章 数组
一、简答
1.    a:数组名,a[0] :数组第0号元素, &a[1]数组第1号元素的地址
2.    不同,a是字符串,末尾有一个\0
3.    2 * 3 * 2 = 12个字节
二、填空题
1.    0
2.    按行存放
3.    1014
4.str[14]
5.    \0
三、改错
1.    是0
2.    只能是常量
3.    一定相同
4.    不会给错误信息
5.    没有提供字符串类型
6.    不等价,ok末尾有一个\0
四、单选
1-5        DBCAC    6-10    DDDCB    11-13    DDC
五、程序分析题
1.    AzyD
2.    123
3.    45
4.    4some string * test
5.    统计输入字符串中空格的个数        3        ,        1
6.    max < a[row][col]            min > max            min == max
7.    a        a        sum/n        x[i] < ave
8.    a[i][j] != a[j][i]        1
字符串常量在存储时末尾以什么结束
9.    j += 2        a[i] > a[j]
10.    1    2    4    5    6    0    0    0    0    0
    1    2    3    4    5    6    0    0    0    0
六、编程题
1.
#include <stdio.h>
int main(int argc , char *argv[]) {
    int a[11] , i , n ;
    printf("请输入十个递增排列的数列:") ;
    for(i = 0 ; i < 10 ; ++i)
        scanf("%d" , &a[i]) ;
   
    printf("请输入要插入的数:") ;
    scanf("%d" , &n) ;
    for(i = 9 ; i >= 0 && a[i] > n ; --i) {
        a[i+1] = a[i] ;
    }
    a[i+1] = n ;
    printf("插入后数列为:") ;
    for(i= 0 ; i < 11 ; ++i)
        printf("%d " , a[i]) ;
    printf("\n") ;
    return 0 ;
}
2.
#include <stdio.h>
#include <string.h>
int main(int argc , char *argv[]) {

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