选择题:
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小时内删除。
发表评论