C语言程序设计试卷
答卷说明:
1、本试卷共6页,答题纸3页,4个大题,35个小题,总分值100分,120分钟完卷。
2、闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上答案为准。
3、本试卷适用于2021级1、2、3班。
1分,共20分)
1、在C语言中,以下标识符中合法的是(    )
A). -int B). in1_3 C). A_B!D D).const
2、不属于C语言根本数据类型的是(    )
A). int  B). unionC). char  D). unsigned
3、下面是对宏定义的描述。不正确的选项是(    )
A).宏不存在类型问题,宏名无类型,它的参数也无类型
B). 宏替换不占用运行时间
C). 宏替换只是字符串的简单替代
D). 宏替换时先检查类型,类型一致时才可以替换
4、C语言中,″\\xfds″在存中占用的字节数是(    )
A).3                B).4  C).5              D).6enum c++
5、设int  x;那么执行printf(″%x\n″,~x^x);的结果是(    )
A). ffffffff        B). ff  C). 0            D). 1
6、对于while语句,错误的说法是(    )
A).用条件控制循环体的执行次数B).循环体至少要执行一次
C).循环体有可能一次也不执行D).循环体中可以包含假设干条语句
7、执行以下语句后输出的结果是(    )
int a=8,b=7,c=6;
if(a<b)if(b>c){a=c;c=b;}
printf("%d,%d,%d\n",a,b,c);
A).6,7,7              B).6,7,8  C).8,7,6              D).8,7,8
8、设int a=9,b=20;那么printf(″%d,%d\n″,a--,--b);的输出结果是(    )
A).9,19              B).9,20  C).10,19              D).10,20
9、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么(    )
A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度
C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域一样
10、设int i,x[3][3]={1,2,3,4,5,6,7,8,9};那么下面语句的输出结果是(    )
for(i=0;i<3;i++)
printf(″%d″,x[i][2-i]);
A).147                B).159  C).357              D).369
11、执行完以下语句后,n的值是(    )
int n;
for (n=0 ; n<100 ; n=2*n+1);
A).125          B).126 C).127                    D).128
12、有以下语句:int a=6;a+=a-=a*a;printf("%d〞,a);输出结果(    )
A).–132 B).–60 C). -24 D). 0
13、为了连接两个字符串s1与s2,应当使用(    )
A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )
14、设int a,*p;那么语句p=&a;中的运算符"&〞的含义是(    )
A).位与运算              B).逻辑与运算C).取指针容 D).取变量地址
15、下面输出的结果为(    )
i nt a=13, b=64;
printf("%d\n〞, !a || (b>>3) );
A).13              B).64
C).1        D).0
16、以下定义正确的选项是(    )
A).enum t={a,b}x;              B). enum t{1,2}x; C). e num {′+′,′-′}x;D). enum t{a,b}x;
17、设有定义:struct u{int a[4];float b[3]; char c[16];}aa;
那么printf(″%d\n″,sizeof(aa));的输出是(    )
A).32                  B).36 C).12                  D).8
二、填空题:21: x >= 022:  x < amin        23:int i=024: (a[i] == b[i]) && a[i] != '\0' 25: ‘\0’      26:    *sptr++    27:  j < i28: a[i][j] = a[j][i]29: a[j][i] = temp
三、阅读程序题:〔每题5分,共20分〕
30:      79        31:I am a qjh.  32:100,400,100,200        33:Gcd=12
四、程序设计题:〔第34小题10分,第35小题各14分,共24分〕 34.设计函数实现将一个字符串中小写字母转化为大写字母。〔10分〕 *include <stdio.h>      〔1分〕 *include <ctype.h>      〔1分〕
/* 转换函数4分,其中:循环正确1分,判断、转换正确各1分,其余1分 */ void Convert(char * str) {  while (*str != '\0')  {  if(islower(*str ))    *str = toupper(*str);  str++;  } }
/* 主函数4分,其中:变量定义初始化正确1分,函数调用正确2分,输出正确1分*/ void main( ) {  char  str[] = "123123asadAsadMNer";  Convert(str);  printf("%s\n",str); }
其它答案可根据情况酌情给分。 35计算!
1
!211!111n e  +++
=的值并输出(设n=20)。
〔14分〕 *include <stdio.h>    〔1分〕 /* 递归函数5分 */
long factorial(int n)    〔1分〕 {  if (n == 1)  return n;            〔2分〕  else  return n * factorial(n-1);    〔2分〕 }
/* 主函数8分,其中:变量定义正确2分,循环正确得2分,函数调用格式正确2分,输出正确2分*/ void main( ) {  double e = 1.0;  for (int i=1; i<=20; i++)  {      e += 1/(double)factorial(i);  }  printf("%lf\n",e); }
其它答案可根据情况酌情给分。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。