《2022年C语言上机试题及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言上机试题及答案 .pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在 C 语言中,形参的缺省存储类是(C) 。A、extern B、register C、auto D、static 下列标识符中,不合法的C语言用户自定义标识符是(C) 。A、printf B、sin C、enum D、_ 以下不正确的if 语句形式是(D) 。A、if(xy&x!=y); C、if(x=y) x+=y; D、if(x!=y) scanf(%d,&x) else scanf(%d,&y); 以下选项中正确的整型常量是C A、4/5 B、5 C、-10 D、1.000 下列变量说明语句中,正确的是(B) 。A、char a;b;c; B、int x,z; C、char:a b c
2、; D、int x;z; 以下程序的输出结果是B main() int k =4, m = 1, p; p = func(k, m); printf(“ %d,” , p );p = func(k, m); printf(“ %dn” , p ); func( int a, int b) static int m, i = 2; i += m + 1; m = i + a + b; return (m); A、8,20 B、8,17 C、8,8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
3、 - 第 1 页,共 13 页 - - - - - - - - - D、8,16 下列关于单目运算符+、-的叙述中正确的是_C_。A、它们的运算对象可以是int 型变量,但不能是double 型变量和 float 型变量B、它们的运算对象可以是任何变量和常量C、它们的运算对象可以是char 型变量、 int 型变量和float 型变量D、它们的运算对象可以是char 型变量和int 型变量,但不能是float 型变量下列字符数组长度为5 的是C A、char c10= h, a, b, c, d; B、char b= h, a, b, c, d, 0; C、char a=h, a, b, c,
4、 d; D、char d6= h, a, b, c, 0 ; 以下程序运行后的输出结果是C #include main() FILE *fp; int i, k = 0, n = 0; fp = fopen(“ d1.dat” , “ w” );for(i = 1; i 4; i+) fprintf(fp, “ %d ” , i);fclose(fp); fp = fopen(“ d1.dat” , “ r ” );fscanf(fp, “ %d%d ” , &k, &n); printf(“ %d%dn” , k, n);fclose(fp); A、1 23 B、0 0 C、123 0 D、
5、1 2 定义语句int *swap(); 指的是D A、以上说法均不对B、swap 是一个返回整型值的函数C、swap 是一个指向函数的指针D、swap 是一个返回指向整型值指针的函数以下选项中正确的实型常量是C A、0.03x102 B、32 C、3.1415 D、0 以下程序的运行结果是(B) 。main() int n; for(n=1;n= 0 &ch*i+= 9 ; i += 2)s = s*10+chi- 0;printf(“ %dn” , s);名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
6、- - - - - 第 4 页,共 13 页 - - - - - - - - - A、62 B、6521 C、12ba56 D、6 对于建立函数的目的,正确的说法是D A、提高程序的执行效率B、减少程序的篇幅C、减少程序文件所占的内存D、提高程序的可读性以下程序的输出结果是C #include main() int i; for(i = 1; i 5; i+) if(i % 2) putchar( ); putchar ( # ); A、 # B、 # C、 # D、b)=c 的值为 真。对C语言中只能逐个引用数组元素而不能一次引用整个数组。对若 a=3,b=2,c=1 则关系表达式(ab)=
7、c 的值为 真。对C语言的函数可以嵌套定义.错如果函数值的类型和return 语句中表达式的值不一致,则以函数类型为准。对名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - x*=y+8 等价于x=x*(y+8)。对【程序设计】- 功能:在键盘上输入一个3 行 3 列矩阵的各个元素的值(值为整数),然后输出矩阵第一行与第三行元素之和,并在 fun()函数中输出。-*/ #include stdio.h int fun(int a3
8、3) /*Begin*/ /* End */ void TestFunc(); main() int i,j,s,a33; for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); s=fun(a); printf(Sum=%dn,s); TestFunc(); 答案int sum; int i,j; sum=0; for(i=0;i3;i+=2) for(j=0;j3;j+) sum=sum+aij; 【程序设计】- 功能:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
9、 - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - 例如:若程序执行时输入字符串为:turbocandborlandc+ 从键盘上输入字符:n,则输出后变为:turbocadbo rladc+,如果输入的字符在字符串中不存在,则字符串照原样输出。-*/ #include void bky(); int fun(char s,int c) /*Begin*/ /* End */ main() static char str=turbocandborlandc+; char ch; printf( 原始字符串
10、 :%sn, str); printf( 输入一个字符:); scanf(%c,&ch); fun(str,ch); printf(str=%sn,str); bky(); void bky() void TestFunc() FILE *IN,*OUT; int m; int n; int i33; int o; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,
11、共 13 页 - - - - - - - - - OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(m=0;m3;m+) for(n=0;n3;n+) fscanf(IN,%d,&imn); o=fun(i); fprintf(OUT,%dn,o); fclose(IN); fclose(OUT); 答案char *q=s; for(; *q; q+) if(*q != c) *(s+)=*q; *s=0; 【程序改错】- 功能:编写函数fun 生成一个对角线元素为5,上三角元素为0,下三角元素为1 的 3*3 的
12、二维数组。-*/ #include stdio.h main() int a33,i,j; fun(a); for(i=0;i3;i+) for(j=0;j3;j+) printf(%d ,aij); printf(n); fun(int arr3) /*ERROR*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - int i,j /*ERROR*/ for(i=1;i3;i+) for(j=0;ji) arrij=0; e
13、lse arrij=1; 答案int i,j; for(i=0;i3;i+) 【参考答案】if(i=j) 【程序改错】- 功能:求出NM 整型数组的最小元素及其所在的行坐标及列坐标(如果最小元素不唯一,选择位置在最前面的一个)。例如:输入的数组为: 9 2 3 4 15 6 12 1 9 10 11 2 求出的最小数为1,行坐标为 2,列坐标为1。-*/ #define N 4 #define M 3 #include int Row,Col; main() int aNM,i,j,min,row,col; printf(input a array:); for(i=0;iN;i+) for(
14、j=0;jM;j+) scanf(%d,&aij); for(i=0;iN;i+) for(j=0;jM;j+) printf(%d,aij); printf(n); min=fun(a); printf(max=%d,row=%d,col=%d,min,Row,Col); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - int fun(int arrayNM) int min,i,j; min=array 00; Row=0
15、; Col=0; for(i=0;iN;i+) /*ERROR*/ for(j=i;jM;j+) /*ERROR*/ if(min array ij) min=array ij; Row=i; /*ERROR*/ Col=i; return(min); 答案for(j=0;jarray ij) Col=j; 【程序填空】- 功能:已定义一个含有30 个元素的数组s,函数 fun1 的功能是按顺序分别赋予各元素从2 开始的偶数 ,函数 fun2 则按顺序每五个元素求一个平均值, 并将该值存放在数组w 中。-*/ float s30,w6; fun1(float s) int k,i; for(k
16、=2,i=0;i30;i+) /*FILL*/ _ ; k+=2; fun2(float s,float w) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - float sum=0.0; int k,i; for(k=0,i=0;i30;i+) sum+=si; /*FILL*/ _; wk=sum/5; /*FILL*/ _ ; k+; main() int i; fun1(s); /*FILL*/ _; for(i=0
17、;i30;i+) if(i%5=0) printf(n); printf(%8.2f,si); printf(n); for(i=0;i6;i+) printf(%8.2f,wi); 1.si=k si=(i+1)*2 2 , if(i+1)%5=0) if(i+1)/5*5=i+1) 3, sum=0 sum=0.0 4 fun2(s,w) 【程序填空】- 题目: 给定程序中 ,函数 fun 的功能是: 统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中
18、。不得增行或删行,也不得更改程序的结构!-*/ #include #include #define N 8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - typedef struct list int data; struct list *next; SLIST; SLIST *creatlist(int *a); void outlist(SLIST *); void fun( SLIST *h, int *n) SLI
19、ST *p; /*FILL*/ _=0; p=h-next; while(p) (*n)+; /*FILL*/ p=p-_; main() SLIST *head; int aN=12,87,45,32,91,16,20,48, num; head=creatlist(a); outlist(head); /*FILL*/ fun(_, &num); printf(nnumber=%dn,num); SLIST *creatlist(int a) SLIST *h,*p,*q; int i; h=p=(SLIST *)malloc(sizeof(SLIST); for(i=0; idata=a
20、i; p-next=q; p=q; p-next=0; return h; void outlist(SLIST *h) SLIST *p; p=h-next; if (p=NULL) printf(The list is NULL!n); else printf(nHead ); do printf(-%d,p-data); p=p-next; while(p!=NULL); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - printf(-Endn); 1,(*n) *n 2. next 3 head 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -