B、一个用于指向函数的指针变量 C、一个用于指向一维数组的行指针 D、一个用于指向整型数据的指针变量
14 下面程序的输出结果应该是( ). char s[ ]=\ main()
{char *p;
for ( p=s;p
}
A、DCBA B、ABCDBCDCDD C、ABCDABCABA D、ABCD
15 设有如下定义: struct sk {int a; float b;} data,*p; 若要使p指向data中的a域,正确的赋值语句是()。
A、p=(struct sk*) data.a; B、*p=data.a; C、p=&data.a; D、p=&data,a;
二、判断题
1 在C程序中,%作为运算符时,是只能用于整数运算。
2 若 a=3,b=2,c=1 则关系表达式\的值为\真\。
3 格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.
4 整型变量在全部范围内可以用字符格式输出.
5 已知a=3,b=4,c=5,则逻辑表达式!(a+b)+c-1 && b+c/2的值为0.
6 语句if(a>b) printf(\可以用条件表达式a>b?a:b取代. 7 已知a=4,b=2,c=3,d=5,表达式a>b?a:c 9 continue语句对于while和do-while循环来说,意味着转去计算While表达式. 10 for语句的循环体至少执行一次. 11 语句 char ch[12]={\与语句 char ch[ ]=\具有不同的赋初值功能. 12 定义char s[9];gets(s);若输入的字符串是Turbo c↙(↙代表按回车键操作) 则输入给数组s中的字符个数是7. 13 对静态数组的初始化是在编译阶段完成的. 14 C语言中,通过函数调用只能获得一个返回值. 15 字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面. 16 函数的返回值可以通过函数中的return语句获得。 17 被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去. 18 char *p=\的含义是定义字符型指针变量p,p的值是字符串\。 19 对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。 20 用fopen(\打开的文件\可以进行修改。 三、填空题 1 设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____. 2 以下程序的输出结果为_____, #include \ a=010,j=10;printf(\ 3 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是_____. 4 若输入字符串:abcde<回车>,则以下while循环体将执行 _____ 次. while((ch=getchar())=='e') printf(\ 5 若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 组的元素中,数值最小的元素的下标值是_____. 6 函数不可以进行嵌套定义,但可以进行嵌套_____. 7 在c程序中,只能给指针变量赋NULL值和_____值. 8 设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是 _____。{ char num[6]; float s[4]; double ave; } a,*p; 四、程序设计 1 、功能:将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 ------------------------------------------------*/ #include \#include \ void change(char str[]) { /*********Begin**********/ /********** End **********/ } main() { void change(); char str[40]; void TestFunc(); gets(str); change(str); puts(str); TestFunc(); 该数 union stud } void TestFunc() { FILE *IN,*OUT; char i[200]; IN=fopen(\ if(IN==NULL) { printf(\ } OUT=fopen(\ if(OUT==NULL) { printf(\ } fscanf(IN,\ change(i); fprintf(OUT,\ fclose(IN); fclose(OUT); } 2 、功能:从低位开始取出长整型变量s中偶数位上的数,依次 构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的数为:642。 ------------------------------------------------*/ #include \ long fun (long s,long t) { /*********Begin**********/ /********** End **********/ } return t; } main() { long s, t,m; void TestFunc(); printf(\ m=fun(s,t); printf(\ TestFunc(); } void TestFunc() { FILE *IN,*OUT; int n; long i,t,m; IN=fopen(\ if(IN==NULL) { printf(\ } OUT=fopen(\ if(OUT==NULL) { printf(\ } for(n=0;n<5;n++) { fscanf(IN,\ m=fun(i,t); fprintf(OUT,\ } fclose(IN); fclose(OUT); } 五、程序改错 1 、功能:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉 一半,又多吃了一个。以后每天早上都吃了前一天剩下的一 半零一个。到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 ------------------------------------------------------ #include \main() { int day,x1,x2; day=9; /**********ERROR**********/ x2==1; while(day>0) { /**********ERROR**********/ x1=(x2+1)/2; x2=x1; /**********ERROR**********/ day++; } printf(\} 2 、功能:将s所指字符串的反序和正序进行连接形成一个新串放在 t所指的数组中。 例如:当s所指的字符串的内容为\时,t所指数组中 的内容为\。 ------------------------------------------------------* #include \#include \#include \/**********ERROR**********/ void fun (char s, char t) { int i, d; /**********ERROR**********/ d = len(s); /**********ERROR**********/ for (i = 1; i char s[100], t[100]; printf(\ scanf(\ fun(s, t); printf(\} 六、程序填空