《2022年c语言程序设计期末试题 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言程序设计期末试题 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、c语言程序设计期末试题(含答案 ) 一、单项选择题 (选择一个最佳答案,每题2 分,共 20 分)1.一个 C程序的执行是从 ( ) 。A) 本程序的 main 函数开始,到 main 函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的 main 函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main 函数结束2.下列选项中,不能用作标识符的是( ) 。A) _1234_ B) _1_2 C) int_2_ D) 2_int_ 3.以下定义语句中正确的是( ) 。A) char a=Ab=B; B) float a=b=1
2、0.0; C) int a=10,*b=&a; D) float *a,b=&a; 4.设有以下定义: #define d 2 int a=0; double b=1.25; char c=A; 则下面语句中错误的是 ( )。A) a+; B) b+ C) c+; D) d+; 5.以下 4 个选项中,不能作为一条C语句的是 ( ) 。A) ; B) a=0,b=0,c=0; C) if(a0); D) if(b=0) m=1;n=2; 6.有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。A) a=a+b=b+ B)
3、w%(int)a+b) C) (c+w)%(int)a D) w=a=b; 7.设有定义: int n=0,*p=&n,*q=&p;则以下选项中,正确的赋值语句是( ) 。A) p=1; B) *q=2; C) q=p; D) *p=5; 8.设有定义: int a,*pa=&a; 以下 scanf 语句中能正确为变量a 读入数据的是 ( ) 。A) scanf(“%d”,pa) ; B) scanf(“%d”,a) ; C) scanf(“%d”,&pa) ; D) scanf(“%d”,*pa); 9.若有说明: char *language=”FORTRAN”, ”BASIC ”, ”P
4、ASCAL ”, ”JAVA ”, ”C”; 则表达式*language1*language2比较的是()。A)字符 B和字符 P B) 字符串 FORTRAN和字符串 BASIC 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - C)字符 F 和字符 B D) 字符串 BASIC和字符串 PASCAL 10.执行语句 for(i=1;i+4;);后变量 i 的值是 ( ) 。A) 3 B)4 C) 5 D) 不定一、填空题 (每
5、空 2 分,共 18 分) 1.若有定义: int a=7;float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4的值为。2.有程序段: int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b; b=p5; 则 b 中的值是。3.函数 swap(int x,int y)实现对 x 和 y 值的交换。则执行语句 int a2=1,2; swap(a0,a1);后,a0= ,a1= 。4.设有以下宏定义: #define f(z) z*z,执行赋值语句 k=f(4 4)/f(22);(k 为 int型变量)后,k 的值是。5.书写语句求 a, b
6、 两个数的最大值 max 。 ? : ; 6.若 x 为 int 型变量,则执行 x=7; x =x=xx; 语句后, x 的值是。二、读程序写结果(每题6 分,共 24 分)1.有以下程序int f(int a) int b=0; static c=3; b=b+1;c=c+1; return(a+b+c); void main() int a=2,i; for(i=0;i3;i+) printf(“%2d ”,f(a); 执行后输出的结果是。 2.有以下程序void f(int y,int *x) y=y+*x; *x=*x+y; void main( ) int x=2,y=4; f(y
7、,&x); printf(“x=%d,y=%dn ”,x,y); 执行后输出的结果是。3.有以下程序#define LETTER 1 #include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - void main() char str20=C Language, c; int i=0; while(c=stri)!=0) i+; #ifdef LETTER if(c=a &c=B&c=Z) c=c-1; else if(c
8、=A) c=c+25; #endif printf(%c,c); 执行后输出的结果是。4.有以下程序 void fun(int *a,int i,int j) int t; if(ij) t=ai;ai=aj;aj=t; i+; j-; for(i=0;i4;i+) printf(%2d,ai); fun(a,i,j); void main() int x=2,6,1,8,i; fun(x,0,3); for(i=0;i4;i+) printf(%2d,xi); printf(n); 执行后输出的结果是。四、程序填空(每空1 分,共 8 分)下面程序的功能是:计算从命令行中输入的第2 个参数开
9、始的所有参数中是回文字符串的参数个数。(顺读和倒读都一样的字符串称为“回文”,如“level ”就是回文)请填空。#include 【1】int sumhw( char *p,int n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - char jughw(char *str); void main(int argc,char *argv) int s; if (argc2) printf(请输入有效参数 ); else s
10、=sumhw( 【2】 ,argc-1); printf(共有%d个回文串 n,s); int sumhw(char *p,int n) char flag; int i,sum=0; for(i=0;ib) max=a max=b6、14三、读程序写结果(每题6 分,共 24 分)1、7 8 9 2、 x=8,y=4 3、 C Lbohvbhf 4、 8 6 1 2 8 6 1 2 四、程序填空(每空1 分,共 8 分)【1】#include【2】argv+1【3】*(p+i)【4】flag= = Y【5】str+n-1【6】p1p2【7】p2【8】p1p2五、编程题(共 30 分)1. (
11、1)数组法( 9 分)#include #include #define N 20 void inv(char str,int n); void main() char strN; gets(str); inv(str,strlen(str); puts(str); void inv(char str,int n) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - int i,j,temp; for(i=0,j=n-1;i=j;i
12、+,j-) temp=stri; stri=strj; strj=temp; (2)指针法( 9 分)#include #include #define N 20 void inv(char *str,int n); void main() char strN; gets(str); inv(str,strlen(str); puts(str); void inv(char *str,int n) char *i,*j,temp; for(i=str,j=str+n-1;i=j;i+,j-) temp=*i; *i=*j; *j=temp; 2. (12 分)#include int m; v
13、oid del_element(int num,int n); void main() int num10; int i,n; m=10; for(i=0;i10;i+) scanf(%d,&numi); printf(please input nn); scanf(%d,&n); del_element(num,n); for(i=0;im;i+) printf(%d ,numi); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - void del_element(int num,int n) int i,j; for(i=0;im;i+) if(numi=n) for(j=i+1;jm;j+) numj-1=numj; m-; i-; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -
限制150内