1、填空(每空1分,共10分) 1、C语言的数据类型中,组合类型包括数组和。 2、在C程序中,可以给指针变量赋值或赋值。 3. C 目标程序产生扩展名为exe 的可执行程序文件。 4、对于定义语句static char s[5];s[4]的值为。 5. 设x为int类型变量。逻辑表达式!x对应的关系表达式为。 6. 如果全局变量只能在该程序文件内的函数中使用,则该变量必须使用的存储类别是。 7. 磁盘文件按照文件读写方式可分为顺序存取文件和顺序存取文件。 8. 如果我们将结构体变量xx 定义如下,则表达式sizeof(xx) 的值为_________。 struct { long char name[20]; Union{float yz; 2.选择题(每题1.5分,共30分)
问题编号
1
2
3
四
五
6
7
8
9
十
回答
问题编号
11
12
13
14
15
16
17 号
18
19
20
回答
1. 假设int x=8, y, z; 执行语句y=z=x++, x=y==z;则变量x 的值为( ) A, 0 B, 1 C, 8 D, 9 2. 我们有以下程序main( ) { int i=1,j=1,k=2; if((j++‖k++)i++) printf('%d,%d,%d\n' ,i , j, k);} 执行后输出结果为( ) A, 1,1,2 B, 2,2,1 C, 2,2,2 D, 2,2,3 3 我明白了。j 和k 是int 类型变量。如果在键盘上输入1, 2, 3 并按Enter,则i 的值为1,j 的值为2,k 的值为3。正确输入以下可选语句为( ) A、scanf(" %2d%2d%2d",i,j,k); B.scanf("%d %d %d",i,j,k);scanf(“%d,%d,%d”,i,j,k); D.scanf(“i=%d,j=%d,k=%d”,i,j,k);有以下程序main() { int a=5,b=4,c=3,d=2; if(abc) printf('%d\n',d); else if((c-1=) d)==1) printf('%d\n', d+1); else printf('%d\n',d+2) } 执行后输出结果为( ) A, 2 B, 3 。 C、4 D。编译时出错,无结果。 5. 下面的程序是( ) x=1; do { x=x*x;} A。它是一个无限循环。 B. 循环执行两次C. 循环执行一次D. 语法错误6. 以下两项不能正确定义维数组的选项为( ) A. int a[2][2 ]={{1 },{2}}; B.int a[][2]={1,2,3,4}; C.int a[2][2]={{1},2, 3}; [2][]={{1,2},{3,4}}; 7. 我有以下程序main( ) { int aa[4][4]={{1,2 ,3, 4} ,{5,6,7,8},{3,9,10,2},{4,2,9,6 }}; int i,s=0; ) s+=aa[i][1]; printf(“%d\n”,s); } 程序运行后输出结果为( ) A, 11 B, 19 C, 13 D, 20 8。以下程序( ) main() { char ch[3][5]={'AAAA','BBB','CC'} ; printf('\'%s\'\n',ch[1) ] ); } A. 'AAAA' B. 'BBB' C. 'BBBCC' D. 'CC' 9. 我们有以下程序。 (4+4)/f(2+2); printf(“%d\n”,i); } 执行后输出结果为( ) A. 28 B, 22 C, 16 D, 4 10. C 语言函数的返回类型是()。 A. return 语句中表达式的类型B. 调用该函数的调用函数的类型C. 调用函数时临时指定的类型D. 定义函数时在函数头中指定的类型(通过默认,隐式int) 类型)。 11. 系统处理预处理命令(宏替换、文件包含、条件编译等)时为( )。 A. 编译源程序时B. 编译源程序前C. 连接目标文件时D. 运行程序时12. 按位运算时,操作数每左移1 位,结果为( )
A. 将操作数乘以2。 C. 将操作数除以2。 B. 将操作数除以4。 D. 将操作数乘以4。
13.下列哪项表述是错误的( )? A. 字符串可以存储在字符数组中。 B、字符数组可以整体输入输出。 D. 赋值语句中不能使用赋值运算符“=”。字符数组是作为一个整体分配的。 14. 给定以下定义int a[2][3],对数组a 的第i 行第j 列的元素的合法引用为( ) A, *(*( a+i)+j ) B。 (a +i)[j] C. *(a+i+j) D. *(a+i)+j 15. 有如下程序void fun(char *a , char *b) { a=b ; } main() { char c1='A',*p1=c2; (p1,p2); printf( '%c%c\n',c1,c2);是。
A.Ab B.aa C.Aa D.Bb
16. 下面的函数Fun (char *p2, char * p1) { while((*p2=*p1)!=' \0'){ p1++;p2++ }} 函数Fun 是( ) A. 复制。将p1 指向的字符串分配给p2 指向的内存空间B. 将p1 指向的字符串的地址分配给指针p2 C. 比较两个指针p1 和p2 指向的字符串D. 两个指针p1 和p2 17. 提供以下结构类型: struct st { char name[8]; float s[4]; 和struct array Student Element 已经有值。将这些元素写入硬盘文件fp 时,以下格式是不正确的( ) A. fwrite(student,sizeof(struct st),50,fp); B.fwrite(student, 50*sizeof(struct st), 1 C. fwrite(student,25*sizeof(struct st),25,fp); D. for(i=0;i50;i++) fwrite(student+i, sizeof(struct st),1, fp );
18. 是否有描述性文字
char a[ ]='这是我的';
char *p='这是我的';
那么下一个错误的说法是( )。
A.a+1代表字母t的地址
B、如果p指向另一个字符串,则该字符串的长度不受限制。
C. 变量p 中存储的地址值可以更改。
D. a中只能存储10个字符。
19. 调用函数时,实参为数组名,传递给函数的是( )
A.数组的长度
B、数组首地址
C.数组每个元素的地址
D.数组每个元素的值
20、执行赋值语句时,会看到变量说明int a=3,b=6;
在这种情况下,c 的二进制值为( )。
A.00011100 B.00000111 C.00000001 D.00010100
3. 阅读程序并将结果写在每题右侧的空白处(每题4 分,共20 分)。
1.#include stdio.h
主要的()
{ char str[]='1234567';
整数我;
for(i=0; i7; i+=3)
printf('%s\n', str+i);
}
2.#include stdio.h
主要的()
{ int i;
for(i=0;i3;i++)
开关(一)
{ case 0: printf('%d',i);
case 2: printf('%d',i);
default: printf('%d',i);
}
}
3.#include stdio.h
主要的()
{
整数我;
对于(i=1;i6;i++)
{
如果(i%2){
printf('#');
继续; }
printf('*');
}
printf('\n');
}
4.#include stdio.h
整数b=1;
函数(int p)
{
静态int d=5;
d+=p;
printf('%d,',d);
返回值(d);
}
主要的()
{
整数a=3;
printf('%d\n',func(a+func(b)));
}
五。 #include stdio.h
结构
{ int 字符名称[10];
无效py(结构Stu *p)
{printf('%s\n', (*p).name);}
主要的()
{
struct Stu Student[3]={{1001,'Sun',25},{1002,'Ling',23},{1003,'Shen',22}};
py(学生+2);
}
4. 阅读程序或程序段并填空(每题4 分,共20 分)。
1.以下程序的功能是调用一个fun函数,删除字符串中的指定字符。请填空。
void fun(char s[],int c)
{ int i,j;
for(i=0,j=0;s[i]!='\0';i++)
如果( )
s[j]='\0';
}
主要的()
{ char str[]='abcdefgAbcd', ch;
scanf('%c',ch);
乐趣(str,ch);
printf('%s\n',str);
}
2、以下程序按姓名查询学生的排名和平均分。查询将继续,直到输入0。
#includestring.h
#定义数字4
结构学生
{ int 排名;
角色名字;
浮点分数;};
Stu[]={3,"汤姆",89.3,4,"玛丽",78.2,1,"杰克",95.1,2,"吉姆",90.6};
主要的()
{ 字符整数[10];
做
{ printf('请输入姓名: ');
scanf('%s',str);
for(i=0;iNUM;i++)
如果( )
{ printf('%s,%d,%f\n',stu[i].name, Stu[i].rank,stu[i].score);}
if(i=NUM) printf('未找到\n');
}while(strcmp(str,”0”)!=0);
}
3.下面的程序使用“顺序查找法”来查找数组中的元素。请填空。
主要的()
{ int a[8]={25,57,48,37,12,92,86,33};
整数i,x;
scanf('%d', x);
for(i=0;i8;i++)
如果( )
{printf('找到!索引为:%d\n', i);break;}
如果( )
printf(“没有找到!”);
}
4.下面的程序从键盘输入几个字符,并将它们一一发送到磁盘文件,直到输入“!”为止。
#includesdio.h
主要的( )
{ 文件*fp;
char ch,fname[10];
printf('请输入文件:的名称\n');
if((fp=fopen(fname, 'w'))==NULL)
{printf('\n无法打开');exit(0);}
printf('输入数据:\n');
while ( ) fputc ( );
fclose(fp);
五。下面的函数fun的作用就是将字符串s中下标位于奇数位置的字符放入其中,并重复一次,将其放入一个新的字符串t中。例如,如果字符串s 是“ABCDEF”。t 的字符串应为“BBDDFF”。
#includestring.h
无效乐趣(字符* s,字符* t)
{ int i,j;
for(i=0;i=strlen(s);i++)
{;
;
}
}
主要的()
{字符s[100],t[100];
scanf('%s',s);
好有趣。
printf('结果是: %s\n', t);
}
5、编程题(每题10分,共20分)
1、创建一个逆序存储输入字符串的程序需要向主函数输入一个字符串,逆序输出,并在被调用的函数内完成逆序存储。例如,输入字符串“abcdefg”并输出“gfedcba”。
2.一个班有5名学生,每人选修4门课程,找到多于一门课程不及格的学生,并打印出所有课程的成绩。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。