西北工业大学C语言第一套测试题
综合测试题1
一、选择题(单选2分×12,共24分)
1. 下列不合法的C语言常量是D。
A) ?\101? B) 123L C) 0x FF D) -e8
2. 若有定义:int a=123,b=456;long sum; 下列语句不能正确求解a、b之积的为C 。
A) sum=(long)(a)*(long)b; B) sum=(long)a*b;
C) sum=(long)(a*b); D) sum=1.0*a*b;
3. 不能正确表示“a为奇数”的逻辑表达式为C。
A) a%2= =1 B) a%2 C) a%2= =0 D) !(a%2= =0)
4. 若有定义:int a=3,b=2,c=1,d;float x=2.3,y=1.0; 下列哪一组C表达式的值是不相同的C。
A) a%b B) (int)x>b C) d=c*2 D) 67-?A?
a/b c/b a- =1 d=c++,c++
d=x—c d=a>b>c b&&c+1 --a
5.若有定义int m=12,n=4;float x=8,y=3;下列输出函数中存在格式符不匹配现象的是D。
A) printf(“%d%s%d\n”,m>n?m:n,“>”,m>n?n:m); B) printf(“%d,%e”,m/n,x/y);
C) printf(“%f,%ld”,m/5.0,(long)(x/y)); D) printf(“%d,%d”,m*n,(int)x/y);
6. 若运行时输入:12345678↙,则下列程序运行结果为B。
main( )
﹛int a,b;
scanf(“%2d%*2d%3d”,&a,&b);
printf(“%d\n”,a+b); ﹜
A) 46 B) 579 C) 5690 D) 出错
7. 循环语句for(i=0,j=8;i<=j;i++,j--)printf(“*”);的循环次数为B。
A) 4 B) 5 C) 9 D) 死循环
8. 若有定义:int c=0,i=0;char s[]= “How do you do”;
执行语句:while(s[i]){c+=s[i]>=97;i++;}后,变量C的值为 D 。
A)14 B)13 C)12 D)9
9. 若有定义:static int a[4]; char c[ ]=”PROGRAM”,*p; double d; 则下列说法错误的是 C 。
A) 变量d 及数组a 、c 的存储长度相同 B) 数组a 各元素初值为0
C) a[4]代表a 数组最后一个元素 D) 执行p=”Hello!”;后p[5]代表字符…!?
10. 若有定义:int a[3]={1,2,3},i=0,*p=a; 当p 未改变时, D 组表示形式不等价。
A) a+i B) a[i] C) *(a+1) D) &a[1]
p+i *(p+i) *(++p) *p+1
11.若有定义:int a[3][4],i,j,*p1,(*p2)[4]; 当执行p1=&a[0][0];p2=a;后,下列 B 项不能代表a[i][j]。
A) *(p1+i*4+j) B) *(a+i)+j C) *(a[i]+j) D) *(*(p2+i)+j)
12. 下面错误的论点是 B 。
A) 一个C 程序的多个函数可分布在多个源程序文件中
B) 结构体数组各元素的类型可不同
C) continue 语句的作用是跳过本次循环后面尚未执行的语句
D) 带参的宏展开时,实参与形象之间是字串的替换
二、填空题(1分×17,共17分)
1.C 语言常量0xb3、125e -3代表的十进制数分别为179 、 0.125 。
2.若有定义int a=1,b=2;float x; 则表达式:x=17,x=(x-a*b)/((int)x%3)+(a&&!b -2)的值为 8.5 。
3.将代数式2a+sinx 2-d
c b a -+ 写成C 表达式为 2*a+sin(x*x)—sqrt((a+b)/(c--d)) 。 4.条件“a 、b 之一为零,但不能都为零” 用C 逻辑表达式表示,应为 a*b= =0 &&a+b!=0 (或 (a= =0!!b= =0) &&! (a= =0&&b= =0) )。
5.若有定义:char str[ ]=“a<=b,f =x+012\034\\\x3f”; 则str 数组的存储字节数为 16 。
6.若将字符串“How are you?”输入到一维字符数组str l 中,应使用语句 get(strl); 。
7.若有定义:int a= -1;执行printf(“%u,%x”,a,a);的结果为 65535,ffff 。
8.若有定义:int n; 执行以下程序片段后,程序的输出结果是 1100001 。
printf(“\n\t”);
for(n=0141;n!=0;n=n/2) printf(“%d \b\b”,n%2);
9.当某函数调用的实参是二维数组名时,对应形参可是二维数组名或行指针变量。
10.若有定义:float *p; 则p++的增量是4。
11.在Turbo C中,F9键的功能是编译、连接,单步执行的功能键为F7或F8。12.若有定义:int a=5,b=9;下列程序片段运行结果是9>5。
a=a+b; b=a-b; a=a-b;
if(a= =b)printf(“%d=%d\n”,a,b);
else printf(“%d%c%d\n”,a, a>b? …>?:…,b);
13.若有定义:
struct
{long num;
float score[4];
}str[3]{101,78,89,76,69,102,67,73,84,75,103,94,70,82,79};
则str各元素的长度为20字节,str[1].score[2]的值为:84 。
三、阅读题(5分×5,共25分)
1.写出程序的运行结果
#include “stdio.h”
main( )
{ char ch; int n,c1,c2;
n=c1=c2=0;
while ((ch=getchar( ))!=?\n?)
{ if(ch>=?0?&&ch<=?9?) n=ch-?0?+n;
else if(ch.>= ?a?&&ch<=?z?) cl++;
c2++; }
printf(“%d,%d,%d\n”,n,cl,c2);
}
运行时输入:abc123 deF406 End↙
16,7,17
2.写出程序的运行结果
main( )
{ int n,t,sum=0;
for(n=1;n<=3;n++)
{ t=fun(n);
sum+=t;
printf(“%d”,t);
if(<3) printf(“+”);
}
printf(“=%d\n”,sum);
}
int fun(int n)
{ static int m,f=1;
if(n= =1) f =n*(n+1)*(n+2);
else f =f*(n+2)/m;
m=n;
return(f);
}
6+24+60=90
3.写出程序的运行结果
main( )
{ void cutfun(char *sl,char *s2,int m);
char str[40]= “computer programming language”,str2[40]; int i;
for(i=0;strl[i]!=?\0?;i++)
if(strl[i]= =? ?) break;
cutfun(strl,str2,i);
strl[i]= …\0?;
printf(“\n%s\n%s\n”,str1,str2);
}
void cutfun(char *sl,char *s2,int m)
{ int i, j;
for(i=m+1,j=0; *(sl+i)!= …\0?; i++,j++)
*(s2+j)=*(s1+i);
*(s2+j)= …\0?;
}
computer
programming language
4.阅读程序并改正其中的错误,使程序能计算四边形的面积,而当输入数据不合理时能显示较为明确的错误信息。
#define S(a,b,c) 1./2*(a+b+c)
#define T(x) (s-x )
#include “math .h”
main( )
{ float a,b,c,d,e,s,area1,area2; int i, j;
scanf(“%f,%f,%f,%f,%f”,&a,&b,&c,&d,&e);
i=a+b >e&&a+e>b&&b+e>a;
j=c+d>e&&c+e>d&&d+e>c;
if(i&&j)
{ s=S(a,b,e );
area1=sqrt(s*T(a)*T(b)*T(c));
s=S(c,d,e);
area2=sqrt(s*T(c)*T(d)*T(e));
printf(“area=%f \n”,area1+area2);
}
else if(i==0&&j==0) printf(“Two part data error!”);
else if(i ==0) printf(“Data a,b,e error!”);
else printf(“Data c,d,e error!”);
}
5. 阅读程序并在下划线上填入适当内容,使程序可找出最大元素的位置、并依据该位置输出最大元素。
void fun(int p[ ][3], int *pi ; int *pj); ;
main( )
{ int a[3][3]={-7,9,-5,12,6,2,15,7,4},i,j;
fun(a, &i , &j );
printf(“max:a[%d][%d]=%d\n”,i,j,a[i][j]);
}
void fun ( int p[3][3] ,int *pi, int *pj)
{ int i,j,max=p[0][0]; *pi=0; *pj=0 ;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(p[i][j]>max){ max=p[i][j]; *pi=i;*pj=j; }
}
四、编程题(12分+10分+12分,共34分)
1. 编写程序,可循环输入a、b及字符变量ch,并根据ch值实现a与b的四则运算。要求:1)当输入字符‘+?、‘-?、‘*?、‘/?之一时完成相应的运算并输出结果;
2)当输入其它字符时显示信息“program end.”,并结束程序;
#include "stdio.h"
main()
{char ch;float a,b;int loop=1;
while(loop)
{printf("Input a operator: ");
ch=getchar();
if(ch=='+'||ch=='-'||ch=='*'||ch=='/')
{printf("input two float numbers a,b:");
scanf("%f,%f",&a,&b);getchar();
switch(ch)
{case '+':printf("%f+%f=%f\n",a,b,a+b);break;
case '-':printf("%f-%f=%f\n",a,b,a-b);break;
case '*':printf("%f*%f=%f\n",a,b,a*b);break;
case '/':if(b!=0.0) printf("%f/%f=%f\n",a,b,a/b);
else printf("\tdivisor is zero\n");break;
}
}
else {printf("\Program end.\n");loop=0;}
}
getch();
}
2. 编写程序,从键盘输入x ,利用幂级数展开式的前20项计算成本cosx 的近似值。
+-+-=!
6!4!21cos 6
42x x x x (-∞ main() { int i,n=1; float x,t,cosx; printf("Input x:"); scanf("%f",&x); cosx=1;t=1; for(i=2;i<20;i++) {t=-t*x*x/(n*(n+1)); cosx=cosx+t; n+=2; } printf("%f,%f\n",cosx,cos(x)); } 3. 编写程序,对下面的学生成绩单进行处理,求出每位学生的平均成绩及每门课程的平均成绩,并按该成绩单格式输出报表。 要求:1)在主函数中输入原始数据; 2)用自定义函数average 求各项平均成绩; 3)用自定义函数list 输出报表; No. ENGL MATH PHYS A VER 1007 90 80 76 1023 87 68 74 1014 56 57 72 1015 93 87 84 1047 73 69 58 A VER #include "math.h" main() {static float score[6][4],y; int i,j; long num[5]; void average(float score[6][4]); void list(float score[6][4],long num[]); y=sin(3.14); for(i=0;i<5;i++) {scanf("%ld",&num[i]); for(j=0;j<3;j++) scanf("%f",&score[i][j]); } average(score); list(score,num); } void average(float score[6][4]) {float sum; int i,j; for(i=0;i<5;i++) {sum=0; for(j=0;j<3;j++) sum=sum+score[i][j]; score[i][3]=sum/3; } for(j=0;j<4;j++) {sum=0; for(i=0;i<5;i++) sum=sum+score[i][j]; score[5][j]=sum/5; } return; } void list(float score[6][4],long num[]) {int i,j; printf(" NO ENGL MATH PHYS AVER \n"); for(i=0;i<5;i++) { printf("%ld",num[i]); for(j=0;j<4;j++) printf("%7.1f",score[i][j]); printf("\n"); } printf("AVER "); for(j=0;j<4;j++) printf("%7.1f",score[5][j]); printf("\n"); return; } 《C 语言程序设计》期末试卷 一、单项选择题(10x2’=20’) 1、以下叙述正确的是() A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个C 语言的源程序中() A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是() A )scanf B )Void C )_3com D )int 4、若以下选项中的变量已正确定义,则正确的赋值语句是() A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D )x4=1+2=3; 5、设有定义:floata=2,b=4,h=3;以下C 语言表达式中与代数式h b a *)(2 1 的计算结果不.相符的是() A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的3种基本结构是() A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在while (!x )语句中的!x 与下面条件表达式等价的是() A)x!=0B)x==1C)x!=1D)x==0 8、有以下程序: #include 1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式 第一部分【程序填空】 第一套: 题目:函数gcd()计算整型数组a中相邻两元素的最大公约数,最小公倍数,其中最大公约数存入数组b中,最小公倍数存入数组c中。 --------------------------------------------------------- 注意:请勿改动主函数main()中的其他内容。 --------------------------------------------------------- #include 《C 语言程序设计》期末试卷 一、单项选择题 (10x2’=20’) 1、以下叙述正确的是( ) A )C 语言的源程序不必通过编译就可以直接运行。 B ) C 语言中的每条可执行语句最终都将被转换成二进制的机器指令。 C )C 语言源程序经编译形成的二进制代码可以直接运行。 D )C 语言中的函数不可以单独进行编译。 2、一个 C 语言的源程序中( ) A )必须有一个主函数 B )可能有多个主函数 C )必须有除主函数外其它函数 D )可以没有主函数 3、以下不能定义为用户标识符的是( ) A )scanf B ) Void C ) _3com D ) int 4、若以下选项中的变量已正确定义,则正确的赋值语句是( ) A )x1=26.8%3; B )1+2=x2; C )x3=0x12; D ) x4=1+2=3; 5、设有定义: float a=2,b=4,h=3;以下 C 语言表达式中与代数式 1 (a b) * h 的计 2 算结果不 相符的是( ) . A )(a+b)*h/2 B )(1/2)*(a+b)*h C )(a+b)*h*1/2 D )h/2*(a+b) 6、C 语言中用于结构化程序设计的 3 种基本结构是( ) A )顺序结构、选择结构、循环结构 B )if 、switch 、break C )for 、while 、do-while D )if 、for 、continue 7.在 while (!x )语句中的 !x 与下面条件表达式等价的是( ) A) x!=0 B) x==1 C) x!=1 D) x==0 8、有以下程序: #include 学院***************** 目录 1 摘要 (3) 1.1设计题目 (3) 1.2设计内容 (3) 1.3开发工具 (3) 1.4应用平台 (4) 2 详细设计 (4) 2.1程序结构 (4) 2.2主要功能 (10) 2.3函数实现 (13) 2.4开发日志 (18) 3 程序调试及运行 (20) 3.1程序运行结果 (20) 3.2程序使用说明 (22) 3.3程序开发总结 (22) 4 附件(源程序) (22) 1 摘要 1.1 设计题目 折半法查找演示程序 1.2 设计内容 本程序是一个演示折半查找算法的演示程序。由用户输入查找的数据表列和查找的数据,系统在将数表排序后可以在屏幕上演示在排序后的表列中按折半查找法查找该数据的具体过程(通过每次查找的中间数据、下次查找表列等,具体效果见下图),支持多次演示、错误提醒,程序暂停演示功能。 1.3 开发工具 Visual C++ 6.0和Win32。 1.4 应用平台 Windows 2000/XP/Vista 32位 2 详细设计 2.1 程序结构 程序功能模块: 本程序主要由五大模块组成:程序说明模块、输入模块、排序模块、折半法查找及显示模块、进程选择模块。各模块的主要功能如下: 程序说明模块:给使用者营造一个较为友好的界面,同时提供程序开发人员的相关信息以及程序操作的相关说明信息。 此部分模块主函数源代码如下: int a[N]; /*存储要查找的数表,用户输入*/ int i,n,num,count; /*count为折半次数计数器,n为数表数据个数,num存储所查数据*/ int top,bottom,mid; char c; /*存储选择函数中的输入的字符y或n*/ int flag=1; /*折半法循环标志变量*/ int loc=-1; /*存储所查找数据位置*/ double k=0; p_s(76);puts("\n"); /*引用p_s函数,打出一行'*'*/(p_s函数位于print_star.cpp文件中,参见下文) printf("****欢****迎****使****用****折****半****查****找****法****演****示****器****\n"); puts("\n"); /*程序欢迎语*/ p_s(13); printf("制作者:***************** "); /*作者信息*/ p_s(4); printf("Email:************************ "); /*电子邮件*/ 说明:请将单项选择题(1~50空)的正确答案涂写考试答题卡,将填空(51~75空)等文字题按【】中的序号写入下面文字答题卡,否则不得分。 二、阅读程序题文字答题卡:(每空2分,共24分) 三、完善程序填空题文字答题卡:(每空2分,共26分) 一、单项选择题(每空1分,共50分) 请将正确答案按【】中的序号写入答题卡,否则不得分。 1.在C语言中,一条语句以【】字符作为结束符。 A),B);C).D)无符号2.以下4组标识符中,能作为变量名使用的是【】。 A)age,struct,s1 B)2A,b_3,main C)ELSE,a[2],m123 D)_abc,INT,abcd 3.判断char型变量ch是否为数字字符的正确表达式为【】。 A)0<=ch<=9 B)'0'<=ch<='9' C)(0<=ch)&&(ch<=9)D)('0'<=ch)&&(ch<='9') 4.已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是【】。 A)putchar('A'+1);B)putchar('b'-32); C)putchar(98-32);D)putchar(B); 5.空字符串的长度是【】。 A)0B)1 C)2 D)3 6.整型变量a定义后赋初值的结果是【】。 int a=2.8*6; A)12 B)16C)17 D)18 7.若有以下说明语句,则该语句【】。 char a='\077'; A)使a的值包含1个字符B)使a 的值包含4个字符 C)使a的值包含3个字符D)说明不合法 8.下面的程序结果为:【】。 main() { int x=023; printf("%d\n",--x); } A)17 B)18C)23 D)24 9.源程序执行后,屏幕上显示【】。 main() { int a; float b; a=4; b=9.5; printf("a=%d,b=%4.2f\n",a,b); } A)a=%d,b=%f\n B)a=%d,b=%f C)a=4,b=9.50 D)a=4,b=9.5 10.设int x=10;x+=x%=(-6)+4;则x= 【】。 A)0B)16 C)18 D)10 11.C语言的下列运算符中,运算对象必须是整型数据的是【】。 第四套期末考试题 第一部分选择题 单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括内 1. 在计算机上可以直接运行的程序是_____________。 A. 高级语言程序 B.汇编语言程序 C.机器语言程序 D. C语言程序 2. 不属于C语言的是__________。 A. for B. goto C. if D. loop 3. 正确的C语言自定义标识符是__________。 A. num(10) B. file_bak C. continue D. class+2 4. 字符串”m\x43\\\np\102q”的长度是__________。 A. 7 B. 9 C. 15 D. 16 5. 设 int x=8, y, z; 执行y=z=x++; x=y==z后,变量x的值是__________。 A. 0 B. 1 C. 8 D. 9 6. 对于输入语句scanf(“%f,%f”, &a, &b); 要使变量a、b的值分别为1.78和2.48,则正确的输入是__________。 A. 1.78, 2.48 后跟回车 B. 1.78 2.48 后跟回车 C. 1.782.48 后跟回车 D. 1.78;2.48 后跟回车 7. 设int a=8, b=7, c=6, x=1; 执行语句 if(a>6) if(b>7) if(c>8) x=2; else x=3; 后x的值是__________。 A. 0 B. 1 C. 2 D. 3 8. 执行下列程序段 x=9; while(x>7) { printf(“*”); x--; } 后输出的结果是__________。 A. **** B. *** C. ** D. * 9. 定义一个具有10个元素的整数型数组,应当使用语句__________。 A. int a[10]; B. int a[2,5]; C. int a[]; D. int *a[10]; 10. 设char str1[10]=”ABCDE”, str2[10]=”xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是__________。 A. 9 B. 8 C. 5 D. 3 11. 设int x[]={1,3,5,7,9,11,13}, *p=x; 则不能正确引用数组元素的表达式是__________。 A. *(p--) B. *(--p) C. *(p++) D. *(++p) 12. 设int x[]={1,2,3,4}, y, *p=&x[1]; 则执行语句 y=(*--p)++; 后变量y的值为__________。 A. 1 B. 2 C. 3 D.4 13. 函数调用时,下列说法中不正确的是__________。 A. 若用值传递方式,则形式参数不予分配内存 B. 实际参数和形式参数可以同名 C. 主调函数和被调用函数可以不在同一个文件中 C语言上机考试题—01 1. //#include C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行 《C语言程序设计》考试试卷(答案) 一、填空题(每小空1分,共10分) 1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。 2.一个C程序有且仅有一个main( ) 函数。 3.C语言描述“x和y都大于或等于z”的表达式是x>=z && y>=z。 4.C语言可以用来实现循环的结构化语句是while、do while、for。 5.数组名表示数组在内存的首地址。 6.int a=3,*p=&a;*p+2的值是5。 二、单项选择题(每小题2分,共70分) 1.__B___是C语言合法的常量。 (A).45(B)078 (C)25.6e3.4 (D)‘xy’2.一个程序的执行是从 A 。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 (C)本程序的main函数开始,到本程序文件的最后一个函数结束。 (D)本程序文件的第一个函数开始,到main函数结束。 3.以下叙述正确的是 C 。 (A)在C程序中,main函数必须位于程序的最前面。 (B)C程序每行中只能写一条语句。 (C)C语言本是没有输入输出语句。 (D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。 4.以下叙述不正确的是 D 。 (A)逗号运算符的运算级最低。 (B)ABC和abc是两个不同的变量。 (C)若a和b类型相同,在执行a=b后,b的自身值不变。 (D)‘a’和“a”是完全等价的常量。 5.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。 (A)28 (B)30 (C)60(D)17 6.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。 (A)2.7 (B)3.7(C)4.7 (D)4.03 7.执行下面两个语句后,输出的结果为__D___。 char c1=98; printf(“%d %c”,c1,c1-32); (A)97 66 (B)98 b (C)b 66 (D)98 B 8.执行下面语句后的结果为 C 。 y=10;x=y++; (A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 9.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。 (A)double (B)char (C)int (D)float 10.C语言中要求操作数必须是整数的运算符是 B 。 1:2:3 #include } } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k 《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!"; 2006-2007学年第二学期考试试卷A卷 考试科目C语言程序设计考试方式闭卷完成时限2小时 拟题人审核人批准人2007年7 月 5 日机械、电气、信息、生化、轻工、经管、理学院2006年级各理工科专业 说明: 1.应将全部答案写在答卷纸对应的题号处;否则作无效处理; 2.编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸; 3.考试完成后,必须将试卷与答卷同时交回。 一、判断题(10小题,每题1分,共10分;用√表示正确,用×表示错误)1.在循环体内使用break语句和continue语句的作用相同。 2.函数返回值的类型最终取决于函数定义时形参的类型。 3.else语句一定要与if语句配对使用,程序中else语句的个数一定小于或者等于if语句的个数。 4.从狭义角度讲,算法是解决一个问题采取的方法和步骤的描述。 5.1/2的结果是0,所以1.0/2的结果也是0。 6.a=b=c=5可以理解为a=(b=(c=5))。 7.假设有语句int a[10]={1,2,3},*p;p=a;则p++完全等价于a++。 8.for(;;)等价于while(1)语句。 9.假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是6。 10.char *sp ={"welcome"};可以写成char *sp="welcome"; 。 二、单选题(16小题,每题1分,共16分) 1.以下数组定义中错误的是: (A) int x[][3] ={0}; (B) int x[2][3]={{1,2},{3,4},{5,6}}; (C) int x[][3]={{1,2,3},{4,5,6}}; (D) int x[2][3]={1,2,3,4,5,6}; 2.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为: (A)EOF (B)NULL (C) 0 (D)非0值 3.有以下程序: main() {int y=10; while(y--) ; printf(“y=%d\n”,y); } 程序执行后的输出结果是: (A) y=0; (B)y=-1; (C) y=1 (D)while构成无限循环 4. 若有以下宏定义: #define N 2 #define Y(n) (N+1)*n 则执行语句int z; z=2*N+Y(5);后的值是 (A) 50 (B)34 (C)19 (D)无定值 5.以下叙述中错误的是: (A)c程序必须由一个或者一个以上的函数组成。 (B)函数调用可以作为一个独立的语句存在。 (C)若函数有返回值,必须通过return 语句返回。 (D)函数形参的值也可以传回给对应的实参。 6.设有如下定义的变量 union data { int i; char ch; float f; }b; 则变量b占用内存的字节数是(假设int类型占2个字节,char类型占1个字节,float类型占4个字节): (A) 4 (B)5 (C) 6 (D)7 7.以下叙述中错误的是: C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include C 语言程序设计 笔试试题 题号 一 二 三 四 五 六 笔试(70%) 综 合 (30%) 总分 分数 试卷说明: 1. 笔试卷面总分100分,取卷面成绩的70%计入总分; 2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%; 3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸; 4. 答题时间120分钟。 一、单项选择题。将正确答案填入下面框中。 (本题16分,每小题1分) 题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案 1. 有以下程序 main() {int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf(“%d\n ”,b); }则程序输出( A )。 A) 0 B) 1 C) 2 D) 3 2. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。 A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x 3. 若有定义 int (*p)[3];则下列说法正确的是( C )。 A) 定义了基类型为int 的三个指针变量 B) 定义了一个名为 *pt 、具有三个元素的整型数值 号 学 名 姓 注意行为规范 遵守考试纪律 C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int的具 有三个元素的整型数组 4. 有以下程序段 main() { int x=10; while(x--); printf("x=%d\n",x);} 则最后的输出结果是:( B)。 A) x=0 B) x= -1 C) x=1 D)while构成无限循环 5. 有以下程序: int fun() {static int x=1; x *= 2; return x;} main( ) { int i,s=1 ; for(i=1 ;i<=2 ;i++) s=fun() ; printf(“%d\n ”,s) ;} 执行后的输出结果为( D)。 A) 0 B) 1 C) 8 D) 4 6. void main( ){ int k=011; printf("%d\n",k++); } }程序输出结果是( D ) A)12 B) 11 C) 10 D) 9 7. 以下C语言标识符中,不合法的是( C)。 A) _2 B) a_b C) a--b D) AaBc 8. C语言允许函数类型默认定义,此时该函数值隐含的类型是( B)。 A) float B) int C) long D) double 9. 以下程序段运行结果是( B)。 enum weekday{aa,bb=2,cc,dd,ee}week=ee; printf(“%d\n“,week); A) 4 B) 5 C) ee D) 0 10. 以下对C语言函数的描述中,不正确的是( B )。 A) 不同函数中可以使用相同名字变量B) 函数可以嵌套定义 C) 函数可以没有返回值D) 程序由函数组成 11. 若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是( D )。 A) *p B) *x C) *(p+1) D) x[5] 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=i+32)后,x的值为:(D). A.52 B.16 C.4 D.36 整型变量x=1,y=3,经下列计算后,x的值不等于6的是(D)。 A.x=y*4/2 B.x=9-(--y)-(--y) C.x=(x=1+2,x*2) D.x=y<2?6:5 以下程序的输出结果为(A)。 main() {int i=010,j=10; printf("%d,%d\n",++i,j--); } A.9,10 B.10,9 C.010,9 D.11,10 如下说法不正确的是(D). A.若b为假a为真,则 a||b为真 B.若b为真a为假,则 a||b为真 C.若b为真a为真,则 b&&!a为假 D.若b为假,则!b+1为假 下列(C)表达式的值为真,其中a=5;b=8;c=10;d=0 A.(a*2-c)||d B.a*2>8+2 C.a-b 第六次CH1005 #include { int n; char a[500],b[500]={'\0'},*p1,*p2; gets(a); scanf("%d",&n); p1=a;p2=b; for(p1=p1+n;*p1!='\0';p1++,p2++) *p2=*p1; puts(b); return 0; } #include 第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由 主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。C语言期末考试题(含答案)
c语言试题及答案
2011年技能考试试卷C语言(真题)
C语言期末考试题(含答案)
西北工业大学C语言大作业实验报告
C语言程序设计试卷含答案
C语言》课程期末考试-第四套
C语言期末上机考试题及答案
(完整版)C语言试题及答案解析
C语言试卷及答案
西工大C语言上机考试题库
c语言试题及答案
精选C语言试卷(带答案).
C语言程序设计期末考试试题及答案
C语言程序设计试卷及答案
c语言试卷第四套
西工大c语言实验100题06
c语言试题及答案 ()