c语言试题及答案.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
C语言试题及答案 本资源提供了C语言相关的试题和答案,涵盖选择题、程序阅读和程序设计三部分。试题涵盖了C语言的基础知识,包括数组、指针、函数、静态变量、字符串和文件操作等方面。 一、选择题 1. 对于定义`int a[2][3] = {0, 2, 4, 6, 8, 10};`,以下描述正确的有(A、C、D、E)。 A. `*(a+1)`为元素6的地址,这里`a+1=a[1]`的地址;`*(a+1)`的值是6,故A正确。 B. `*(a[1]+1)`的值为2为8,故B不正确。 C. `(a+1)+2`的值为8,这里`a+1`是一个指针,指向的是`a[1]`,`*(a+1)`为`a[1]`,`a[1]`指向的是`a[1][0]`。`(a+1)`为6,加2得8,故C正确。 D. `a[0]`与`a`相同,因二者都是指针,指针的地址都是指向数组中的第一个元素的地址,故D正确。 E. `a[1][2]`的值为10,它是指第二行的第三个元素,为10,正确。 2. 对函数的正确使用方法描述(A、C、D)。 A. 用数组做函数参数时,必须在主调函数和被调函数中分别定义数组。 B. 实参数组元素和形参数组元素类型可以不一致。 C. 形参数组长度可以不指定。 D. 形参数组长度可以大于实参数组长度。 3. 对静态变量的正确描述(A、B、D、E)。 A. 静态局部变量在静态存储区内分配单元。 B. 静态外部变量可以赋初值,也可以不赋初值。 C. 静态外部变量的作用与外部变量相同。 D. 静态局部变量在函数调用结束时,仍保存其值,不会随着消失。 E. 静态局部变量只赋一次初值。 4. 下列描述正确的是(A、C)。 A. 由main函数及其参数argc和*argv[]可以实现命令行方式。 B. 使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中。 C. 字符数组并不要求它的最后一个字符是‘\0’。 D. ‘A’和“A”都是字符串常量。 E. 若char*S=“\ta\017bc”;则指针变量S指向的字符串所占的字节数是7。 5. 在缓冲文件系统中用于读写的函数有(A、B、D)。 A. putchar()。 B. fread()。 C. rewind()。 D. purw()。 E. fseek()。 二、程序阅读 (1)main(){ unsigned a,b,x; int n; a=0x763; n=6; b=a<<(12-n); x=(a>>n-2)^b; printf(“\nb=%x,\nx=%x”,b,x);}。 (2)#include 〈stdin.h〉 struct m {int x;int *y;} *p; int a [4]={12,33,-40,100}; struct m b [4]={10,&a[2],9,&a[3],8,&a[0],7,&a[1]}' main(){ p=b; printf(“%d\n”,++p->x); printf(“%d\n”,(++p)->x); printf(“%d\n”,++(*p->y));} 三、程序设计 设在文件a.txt和文件b.txt中分别存有两个字符串,设计一个程序将这两个字符串按依序交叉的方式合并为一个字符串(例如“aaaaa”与“bbb”的合并结果为“abababaa”,而“bbb”与“aaaaa”的合作结果为“bababaa”),并将结果存入文件a.txt中。 【答案】 可以分别读取a.txt文件和b.txt文件,注意(1),无论a文件先读完还是b文件先读完,程序都能作出适应性的判断。注意(2)把a和b合并的结果,写到一个临时文件c中,最后把c的文件覆盖到a文件中,达到题意的要求。 本资源涵盖了C语言的基础知识,包括数组、指针、函数、静态变量、字符串和文件操作等方面,为C语言学习者和程序员提供了有价值的参考资源。