选择题:
1    以下不能定义为用户标识符的是_____。    IF    Void    _3com_    int       
2    "已知:int a,*p=&a;则下列函数调用中错误的是_______。"    "printf(""%d"",a);"    "printf(""%d"",p);"    "scanf(""%d"",&&a);"    "scanf(""%d"",&&p);"       
3    以下与语句k=a>b?(b>c?1:0):0;功能等价的是_____。    if((a>b)&&&&(b>c)) k=1;    if((a>b)||(b>c)) k=1;else k=0;    if(a<=b) k=0;    if(a>b) k=1;else if(b<=c) k=1;else if(b>c) k=1;       
4    已知int a[3][4];则对数组元素的非法引用是_____。    a[0][2*1]    a[4-2][0]    a[1][3]    a[0][4]       
5    "与语句""while(!x);""等价的语句是____。"    while(x==0);    while(x!=0);    while(x!=1);    while(~x);       
6    以下合法的赋值语句是___。    x=y=100    d--;    x+y;    c=int(a+b);       
7    在C语言中,未指定存储类的变量的存储类别是_____。    auto    static    extern    无存储类别       
8    若有定义:int a[10];则以下表达式中不能代表数组元素a[1]的地址的是_____。    &&a[0]++    &&a[1]    &&a[0]+1    a+1       
9    "已知int j,i=1;执行语句j=-i++;后,j的值是______。"    1    2    -1    -2       
10    若执行fopen函数时发生错误,则函数的返回值是____。    地址值    NULL    1    EOF   
填空:
1    "如果定义了整型数组a[10]和i=0,则要为该数组所有元素输入数据,则应该在语句:while(i<10) scanf(“%d”,a+(_____));空白处填入什么才能使语句完善?"       
2    "若int x=120,y=50; 执行printf(""%d"",(y,x));后输出结果是______。"       
3    "若已定义int a[9],*p=a;并且a数组中已有数据,利用指针变量p输出a[4]中的数据应该在
空格处填入:printf(""%d"",______(p+4));。"       
4    "若int a=4;float b; 则b=10.0/a;printf(""%.1f"",b);的结果是______。"       
5    "若想通过语句float a,b,c;scanf(""a=%f,b=%f,c=%f"",&a,&b,&c);使a=5.7,b=4.6,c=3.8,请填入适当内容,完成输入数据的形式:a=5.7____。"       
6    "假定有以下变量定义: int k=7,  x=12; 在空白处填入运算符使表达式的值为3:(x%=k)_____(k%=5)  。"       
7    "若i是整型变量,执行语句for(i=1;i<=7;i++) {if(i%2) printf(""*""); else continue;printf(""#"");}后,输出结果是______。"       
8    "程序中定义宏#define w 2和#define L 4+w,若定义int val;且命令val=L*L, 则变量val的值为______。"       
9    表示“整数x的绝对值大于5”时,值为“真”的C语言表达式是(利用逻辑运算符)  x>5____x<-5。       
10    C语言中,“按位与”的运算符是______。       
3.判断题:
1    a是实型变量,C允许进行以下赋值a=10,因此可以这样说:a就变成了整型。       
2    空语句是合法的C语句。       
3    while语句的循环体中还可以包含for循环。       
4    "用do-while语句构成的循环,在while后的表达式为零时结束循环。"       
5    在switch结构中,break语句可使流程立即跳出switch语句体。       
6    "用#include包含的头文件的后缀不可以是 "".a""。"       
7    指针p已经指向某个已定义的数组,则(*p)++相当于*(p++)。       
8    在C程序中,不同函数中所定义的变量允许同名。       
9    字符型数组中可以存放字符串。       
10    "如果有定义:int a=6,b; 则执行完语句 b=a<<2; 后,b的值为24。"       
程序分析:
1.
# include "stdio.h"
main()
{
    int x,a,b,c,d,e;
    char ch;
    x=100;
    a=40;
    b=30;
    c=20;
    d=10;
    e=0;
    ch='a';
    if (a<b) 
          x+=1;
    else if (c>d)
                  ;
            else if (ch)
                      if (e)
                          x+=1;
    x+=x;
    if (x)   
      x*=2;
    else x-=x;
    printf("%d\n",x);
}
2.
#include "stdio.h"
fabc(int x,int *y)
{
x++;
(*y)++;
printf("x=%d,*y=%d,",x,*y);
}
main()
{
int a=4,b=5,*c=&b;
fabc(a,c);
printf("a=%d,b=%d\n",a,b);
}
编程题:
1.给定程序k:\m.c中函数 fun 的功能是:把在字符串s中出现的每个字符, 紧随其后重复出现一次,放在一个新串t中,t中字符按原字符串中逆排列。
例如:当s中的字符串为:"ABCDE"时,
      则t中的字符串应为:"EEDDCCBBAA"。
注意:只能改动*found*下一行,不要改动main函数,不得增行或删行,也不得更改程序的结构!
unsigned strlen(char *s):返回s串中字符(不含'\0')个数。
2.在k:\有程序文件p1.c,程序功能是计算并输出1000以内所有能被47整除的正整数之和。
其中函数calu的功能是:计算1000以内所有能被47整除的正整数之和,结果通过return返回。请完成calu的函数体。
注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!
3.在k:\有程序文件p2.c,程序功能是:输入一串1至7之间的简谱字符串,由已有的a数组中的对应字符,转变成音名字符串,规则是"1234567"中的各个字符依次对应着"CDEFGAB"中的各个字符,例如输入555676533322到x数组,在y数组中成为GGGABAGEEEDD。
其中函数tra的功能是:由x数组中的各简谱字符,对应a中元素,向y数组中写入音名字符串。请完成tra的函数体。提示:'1'的ASCII码值为49。
while语句简单例子
注意:主程序及其他函数都不许修改!调试完成后,至少要运行一次才会保留评分依据!

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