首页 > 自考资讯 > 自考知识

c语言程序设计电子书,c语言程序设计知识点总结pdf

头条共创 2024-07-05

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门课程,找到多于一门课程不及格的学生,并打印出所有课程的成绩。

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢