C语言经典作业题
(完整版)C语言试题库(完整版)
C语言试题库一、单项选择第一章 C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、 C程序的每行中只能写一条语句。
C、 C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3) C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、 C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、 if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1)putchar函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y均定义为int型,z定义为double 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,x+y+z);}A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=int(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1,10]和[200,210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1)││(x<=10) ││(x.>=200) ││(x<=210)C、(x>=1) &&(x<=10) ││(x.>=200) &&(x<=210)D、(x>=1)││(x<=10)&& (x.>=200) ││(x<=210)(2)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”); else printf(“$ $ $\n”); }以上程序。
C语言100练习题
C语言百道练习题一、填空题1.C源程序的基本单位是【函数】。
2.一个C源程序至少应该包含一个【main函数】。
3.在一个C源程序中,注释用的分界符是【//】或【/* */】。
4.在C语言中,标准输入操作的库函数是由【scanf()】完成的,标准输出操作的库函数是由【printf()】完成的。
5.在C语言中,标识符只能由【字母】、【数字】和【下划线】组成,且首字符必须是【字母或下划线】。
6.x为double类型,代数式的C语言表达式是【sqrt(pow(sin(x),2.5))】。
7.数学中一元二次议程的求根公式的C语言表达式为(-b+sqrt(b*b-4*a*c) )/(2*a) 或(-b-sqrt(b*b-4*a*c) )/(2*a) 。
8.梯形的面积公式的C语言表达式为 1.0/2*(a+b)*h 。
9.已知:char a=' a',b=' b',c=' c',i;(已知a的ASCII码值为97)则表达式i=a+b+c的值为294 。
10.C语言中,指针运算符有* 和& 两个。
11.已知int a=12,n=5;则:表达式运算后a和n的值各为0,0 。
a+=aa-=2a*=2+3a/=a+an%=(n%=2)a+=a-=a*=a12.复合语句是用一对{ } 界定的语句块。
13.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:#include <stdio.h> 。
14.C语言提供三种逻辑运算符,按优先级高低它们分别是! ,&& ,|| 。
15. 将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式(y%4==0&&y%100!=0) ||(y%400==0) 。
16. 已知A=7.5,B=2,C=3.6,表达式A>B && C>A || A<B && !C>B的值是F/假。
C语言练习题(带标准答案)-绝对经典题目不看后悔
C语言练习题(带答案)-绝对经典题目不看后悔————————————————————————————————作者:————————————————————————————————日期:1单选题1.(A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。
A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。
C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。
A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。
C语言练习作业及参考答案
二、选择题
1、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为____A___。
A) char<int<long int<=float<double
B) char=int <long int<=float<double
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
7、以下叙述不正确的是___D_____。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
longd=32768;
float e=4.56;
b=a;
a=c=d;
printf("%d,%u,%u,%ld\n",a,b,c,d);
a=e;
printf("%d,%f\n",a,e);
ห้องสมุดไป่ตู้return 0;
}
本题假设int型数据占两个字节。
(提示:%u表示以无符号整型的格式输出;%ld表示以长整型的格式输出)
8、C语言规定:在一个源程序中,main函数的位置是___A_____。
A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在最后
习题
一、程序题
1、阅读程序写运行结果
(1)#include <stdio.h>
int main()
c语言经典题目100题
1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。
c语言经典题目
一,闰年问题#include<stdio.h>void main(){int a;printf("please input the data of years:");scanf("%d",&a);if(a%400==0||(a%4==0&&a%100!=0))printf("\n闰年:%d",a);}二,数字整除问题#include<stdio.h>void main(){int a=1,i=0;printf("能被7整除的数:\n");while(a<=100){if(a%7==0){printf("%4d",a);i++;if(i%5==0)printf("\n");}a++;}}三,五层递加三角#include<stdio.h>void main(){int a,b,n=1;while(n<=5){a=1,b=1;while(a<=5-n){printf(" ");a++;}while(b<=2*n-1){printf("*");b++;}printf("\n");n++;}}四,水仙花数#include<stdio.h>void main(){int a,m,n,q,p=1;a=100;while(a<1000){m=a/100;n=a/10-m*10;q=a-m*100-n*10;if(a==m*m*m+n*n*n+q*q*q){printf("%5d",a);if(p%2==0)printf("\n");p++;}a++;}}五,最小公倍数#include<stdio.h>int gy(int x,int y){int r;if(x<y){r=x;x=y;y=r;}r=x%y;while(r!=0){x=y;y=r;r=x%y;}return (y);}int gb(int m,int n){int p;p=m*n/gy(m,n);return (p);}void main(){int a,b,c;printf("please enter the data you want to handle:");scanf("%d,%d",&a,&b);c=gb(a,b);printf("%d",c);}六,1+1/3+1/5.....#include<stdio.h>void main(){int n,i;float sum=0.0;scanf("%d",&n);i=1;while(i<=n){sum +=___1.0/(2*i-1);i++;}printf("%.3f",sum);}七,1+1/(1+2)+1/(1+2+3).....#include<stdio.h>void main(){int a,b,c=0;float d=0.0;a=1;scanf("%d",&b);while(a<=b){c+=a;a++;d+=1.0/c;}printf("%d\n",c);printf("%.3f",d);}八,1/(1*2*3*4....*b)#include<stdio.h>void main(){int a,b,c=1;float d;scanf("%d",&b);a=1;while(a<=b){c*=a;a++;d=1.0/c;}printf("%d\n",c);printf("%.3f\n",d);}九,从大到小排列数组,求和,取极差#include<stdio.h>void main(){int a[10],m=0,i,j,t,c;float d=0.0;while(m<10){scanf("%d",&a[m]);m++;}for(i=0;i<10;i++)printf("%3d",a[9-i]);printf("\n");for(i=0;i<10;i++)for(j=0;j<9-i;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}for(i=0;i<10;i++)printf("%3d",a[i]);c=a[0]-a[9];printf("\n%d",c);for(i=0;i<10;i++)d+=a[i];printf("\n%.3f",d/10.0);}十,矩阵转置及其元素最大值#include<stdio.h>void main(){int i,j,a[2][3],b[3][2],max;for(i=0;i<2;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<2;i++){for(j=0;j<3;j++)printf("a[%d][%d]=%d ",i,j,a[i][j]);printf("\n");}for(i=0;i<2;i++){for(j=0;j<3;j++){b[j][i]=a[i][j];}}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("b[%d][%d]=%2d ",i,j,b[i][j]);printf("\n");}max=a[0][0];for(i=0;i<2;i++)for(j=0;j<3;j++){if(max<a[i][j])max=a[i][j];}printf("max=%d",max);}十一,矩阵对角线元素和#include<stdio.h>void main(){int i,j,m=0,a[3][3];for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("a[%d][%d]=%2d ",i,j,a[i][j]);printf("\n");}printf("对角线之和为:");for(i=0;i<3;i++)m+=a[i][i];printf("%d",m);}十二,斐波那契数列#include<stdio.h>void main(){int fib[20]={1,1};int i;for(i=2;i<20;i++)fib[i]=fib[i-1]+fib[i-2];for(i=0;i<20;i++){if(i%5==0)printf("\n");printf("%5d",fib[i]);}}十三,杨辉三角#include<stdio.h>void main(){int a[10][10],i,j;for(i=0;i<10;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<10;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j]+a[i-1][j-1];for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%5d",a[i][j]);printf("\n");}}十四,101-200之间的素数#include<stdio.h>void main(){int sum,num,i;for(num=101;num<=200;num++){sum=0;for(i=2;i<num;i++){if(num%i==0)sum++;}if(sum==0)printf("%5d",num);}}#include<stdio.h>void main(){int i,j,k;for(i=0;i<=20;i++)for(j=0;j<=33;j++)for(k=0;k<=99;k=k+3)if((i+j+k==100)&&(15*i+9*j+k==300))printf("i=%d j=%d k=%d\n",i,j,k);}十六,猴子吃桃#include<stdio.h>void main(){int x1,x2=1,day;for(day=9;day>0;day--){x1=2*(x2+1);x2=x1;}printf("第一天的桃子数:%d\n",x1);5.1 用π/4≈1-1/3+1/5-1/7+…公式求π的值,直到某一项的绝对值小于10-6为止。
(完整版)C语言100个经典题目
C语言程序设计习题授课对象:信息奥赛辅导成员授课时间:题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?__________________________________________________________________程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…。
___________________________________________________________________程序源代码:main(){long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){printf(“%12ld %12ld”,f1,f2);if(i%2==0)printf(“\n");/*控制输出,每行四个*/f1=f1+f2;/*前两个月加起来赋值给第三个月*/f2=f1+f2;/*前两个月加起来赋值给第三个月*/}}上题还可用一维数组处理,you try!题目:判断101—200之间有多少个素数,并输出所有素数。
__________________________________________________________________程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
___________________________________________________________________程序源代码:#include “math。
h”main(){int m,i,k,h=0,leap=1;p rintf(“\n”);for(m=101;m〈=200;m++){ k=sqrt(m+1);for(i=2;i〈=k;i++)if(m%i==0){leap=0;break;}if(leap){printf(“%-4d”,m);h++;if(h%10==0)printf(“\n");}leap=1;}printf(“\nThe total is %d”,h);}题目:打印出所有的“水仙花数",所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
c语言经典试题
哈工大 2006 年 春 季学期C 语言 试题和卷面笔试成绩各自所占比例折合后累加计算。
一、单项选择题:(10分,每题2分)1.以下对一维数组的定义中,正确的是: 。
A) #define MAX 5 B) int MAX=5;int a[MAX]; int a[MAX];C) int MAX; D) #define MAX 5;Scanf(“%d ”,&MAX); int a[MAX];int a[MAX];2.以下程序运行时输入8,则程序运行后t 的值是: 。
main(){ int t;scanf(“%d ”,&t);if(t-->=8)printf(“%d \n”,t --) ;elseprintf(“%d\n ”,t++) ;}A)9 B)8 C)7 D)63.有以下程序段main(){ int i=1,sum=0,n;scanf(“%d”,&n);do{ i+=2;sum+=i ;}while(i!=n);printf(…%d”,sum);}若使程序的输出值为8,则应该从键盘输入的n 的值是: 。
A) 1 B) 3 C) 5 D) 74.若有以下定义及语句:struct s1{char a[3];int num;}t={…a‟,‟b‟,‟c‟,4},*p;p=&t;则输出值为c的语句是________。
A) printf(“%c\n”,p->t.a[2]);B) printf(“%c\n”,(*p).a[2]);C) printf(“%c\n”,p->a[3]);D) printf(“%c\n”,(*p).t.a[2]);5.C语言规定:在一个源程序中,main函数的位置。
A)必须在程序的最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在程序的最后二、写出下列程序的运行结果。
(10分,每题2分) 1.#include <stdio.h>main(){int i,j;for(i=1; i<=3; i++){ for(j=i; j>=1; j--)printf("* “);printf("\n“);}}运行结果是:2.#include <stdio.h>main(){int a,b,c;scanf("%2d%2d%*2c%2d",&a,&b,&c);printf("%d\n", a+b-c);}程序执行时从键盘输入:54457766↙运行结果是:3.#include <stdio.h>#include <string.h>main(){char *p=”abcde”,a[20]=”ABC”,*q=a;p+=3;printf(“%s\n”,strcat(q,p));}运行结果是:4.#include <stdio.h>int fun(){auto int x=1;static int y=1;x+=2;y+=2;return x+y;}main(){int a,b;a=fun();b=fun();printf(“%d,%d\n”,a,b);}运行结果是:5.#include <stdio.h>main(){ int k=0;char c=‟A‟;do{ switch(c++){ case …A‟: k++; break;case …B‟: k--;case …C‟: k+=2; break;case …D‟: k=k%2; continue;case …E‟: k=k*10; break;default: k=k/3;}k++;}while(c<‟G‟);printf(“k=%d\n”,k);}运行结果是:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
c语言题库(60道题)
第一题:编写一个售货机(POS)计算程序,用于水果店售货员算账。
苹果每千克 3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。
某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。
要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。
#include<stdio.h>main(){float apple=1.5,pear=2.0,banana=3.0,cherry=1.5;float cost,pay=100.0,retern;cost=3.2*apple+1.96*pear+3.0*banana+24.0*cherry;retern=pay-cost;printf("LIST\t重量:\t价钱:\n");printf("apple\t1.5\t%.2f\n",3.2*apple);printf("pear\t2.0\t%.2f\n",1.96*pear);printf("banana\t3.0\t%.2f\n",3.0*banana);printf("cherry\t1.5\t%.2f\n",24.0*cherry);printf("pay=%.2fRMB\ncost=%.2fRMB\nretern=%.2fRMB\n",pay,cost,retern);}第二题:编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。
#include<stdio.h>main(){int a[]={12,1648,500,-322,41,-15,126,-45,0,45,-356},i=0,m=0,n=0;for(i=0;a[i]!=0;i++){if(a[i]<0)m++;else if(a[i]>0)n++;}printf("%d\n%d\n",m,n);}第三题:统计100-500之间各个数字之和为9的三位数,输出这些三位数。
C语言编程题_经典40题(附解答)
{int i, j, temp, exchange ; for ( i=0; i<n-1; i++)
/*i表示趟数,最多n-1趟*/
{exchange=0; /*假设这一趟不会有数据交换*/
for ( j=n-1 ; j> i; j--)
if (R[j]<R[j-1]) /*若反序则交换,将较小的元素往上调*/ { temp =R[j]; R[j]=R[j-1]; R[j-1]= temp; exchange=1; } if(exchange= =0) return; } }
{ for( j=1; j<=i; j++)
printf(―%4d* %d= %2d‖, i, j, i*j); printf(―\n‖); } }
8、铁路托运行李规定:行李重不超过50公斤的,托运费 按每公斤0.15元计费;如超过50公斤,超过部分每公斤加收 0.10元。编一程序实现自动计费功能。 double money(double w ) { if (w<=50) return 0.15*w; else return 0.75+0.1*(w-50); } void main( ) { int w; double f; do { printf(―请输入行李重量:”); scanf(―%d‖,&w); if (w >0) { f =money(w); printf(―\nweight=%d,freight=%f‖,w,f); } }while (w= =0); }
{ temp=b[i]; b[i]=b[k]; b[k]=temp; }
} }
输出一维数组的函数如下:
c语言程序基础练习题500道(附答案)
1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。
c语言的一些作业题
红色代表改的正确答案绿色黄色自己做的1、下列程序的输出结果是:main( ){}A、5B、1C、0D、不确定值2、设int a=12,则执行完语句a+=a-=a*a后,a的值是: A、552B、264C、144D、-264int a=7,b=5; printf("%d ",b=b/a);结果03、当调用函数时,实参是一个数组名,则向函数传送的是: A、数组的长度B、数组的首地址C、数组每以个元素的地址D、数组每个元素的值4、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b 的是:A、c=b=a;B、(a=c)||(b=c);C、(a=c)&&(b=c);D、a=c=b;5.能正确表示a 和b 同时为正或同时为负的逻辑表达式是: A、(a>=0||b>=0)&&(a<0||b<0) B、(a>=0&&b>=0)&&(a<0&&b<0) C、(a+b>0)&&(a+b<=0)D、a*b>06在一个C程序中: A、main函数必须出现在所有函数之前; B、main函数可以在任何地方出现; C、main函数必须出现在所有函数之后; D、main函数必须出现在固定位置7以下说法中正确的是: A、C语言程序中是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语程序中的main()函数必须放一在程序的开始部分8、C语言中,调用个函数时,实参变量和形参变量之间的数据传递是: A、单纯值传递B、单纯地址传递C、值传递和地址传递都有可能D、由实参传给形参,然后由形参传回给实参,即是双向传递9、以下程序的输出结果是: #include main(){int a=2,c=5;printf("a=%%d,b=%%d ",a,c); }%%代表输出%A、a=%2,b=%5B、a=2,b=5C、a=%%d,b=%%dD、a=%d,b=%d10.按照c语言规定的用户标识符命名规则,不能出现在标识符中的是: A、大写字母B.连接符C、数字字符D、下划线11.以下定义语句中正确的是: A、char a='A' b='B';B、floata=b=10.0;C、int a=10,*b=&a;B答案没有定义变量bD、float *a,b=&a;12、有以下程序: main(){int y=10; while(y--) ; printf(“y=%d ”,y);}程序执后的输出结果是: A、y=0B、y=-1C、y=1D、while构成无限循环先使用在减小1等于0停止打印时候已经减一13、程序char c[5]={…a‟,‟b‟,‟\0‟,‟c‟,‟\0‟}; printf(“%s”,c); 的运结果是:A、'a''b'B、abcC、ab cD、ab14、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是: A、INPUT x、y、z;B、scanf("%d%d%d",&x,&y,&z);C、scanf("%d%d%d",x,y,z);D、read("%d%d%d",&x,&y,&z);15、下列变量声明正确的是: A、int a = 0 , b = 5; B、float i = j = 3.0; C、char a ='A' b ='B' D、int a = 3 , b = &a;16.以下不正确的if语句形式是: A、if(x>y&&x!=y)t=x++;B、if(x==y) x+=y;C、if(x!=y) scanf("%d",&x) else scanf("%d",&y);D、if(x<0)x++;17、设有定义:int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是: A、k++B、k+=1C、++kD、k+118、以下结构体类型的变量所占字节数是: struct student{ shortnum; char name[15]; float score; char sex;};A、22B、24C、26D、2819、C语言源程序的基本单位是: A、过程B、函数C、程序D、标识符20若有以下定义和语句: int u=010,v=0x10,w=10;printf("%d,%d,%d ",u,v,w); 则输出结果是:A、8,16,10B、10,10,10C、8,8,10D、8,10,1021、若要求定义具有10个int形元素的一维数组array,则以下的定义语句错误的是: A、#define N 10int a[N]; B、#define n 5int a[2 * n];C、int a[5 + 5];D、int n = 10,a[n] = {0};22、以下程序执行后sum的值是: main(){inti,sum; for(i=1;i<6;i++) sum+=i; printf("%d ",sum);}A、15B、14C、不确定D、0 sum没有赋初值23、设变量定义为int x , *p = &x;则&(*p)相当于: A、*(&x)B、*pC、pD、x24、设已有定义:float x; 则以下对指针变量p进行定义且赋初值的语句中正确的是: A、float *p=1024;B、int *p=(float)x;C、float p=&x;D、float *p=&x;25、以下程序的输出结果为:inti; void prt( ){for(i=5;i<8;i++) printf("%c",'*');printf(" "); } 这个只执行了一次因为内部加到8,在i+1结束main( ) {for(i=5;i<=8;i++) prt( ); }A、***B、*** *** *** ***C、*** ***D、* * *26、定义由n个指向整形数据的指针组成的数组p,其正确的式为:A、int p;B、int (*p)[n];C、int *p[n];D、int (*p)( );27、以下代码的输出结果为: int array[3] = {1,4};for(inti = 0;i < 3;i++){ printf(“%d ”,array[i]); }A、1 4 0B、0 1 4C、1 0 4D、1 4 428、设int x=1, y=1; 表达式(!x||y--)的值是: A、0 B.1C、2 D、-129.以下程序的输出结果是: main(){int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d ",x--,y);}A、10 1 9 2B、9 8 7 6C、10 9 9 0D、10 10 9 1自加是最后进行所以y先打印在进行加减30、若执行下面程序时:int x;scanf("%d",&x);if(x++ > 5){ printf( "%d ",x)}; else{ printf("%d ",++x)};从键盘上输5,则输出是:A、7B、6C、5D、431、下面程序的输出是: fun3(int x){staticint a=3; a+=x; return(a);} main() {int k=2, m=1, n; n=fun3(k); n=fun3(m); printf("%d ",n);}A、3B、4C、6D、932、有定义语句:intb;char c[10];,则正确的输入语句是: A、scanf("%d%s",&b,&c);B、scanf("%d%s",&b,c);C、scanf("%d%s",b,c);D、scanf("%d%s",b,&c);33、函数调用:strcat(strcpy(str1,str2),str3)的功能是: A、将串str1复制到串str2中后再连接到串str3之后B、将串str1连接到串str2之后再复制到串str3之后C、将串str2复制到串str1中后再将串str3连接到串str1之后D、将串str2连接到串str1之后再将串str1复制到串str3中34、若程序中定义了以下函数double myadd(double a,doubleb){ return (a+b); } 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是:A、double myadd(double a,b);B、double myadd(double,double);C、double myadd(double b,double a);D、double myadd(doublex,double y);35、有以下程序main(){char s[]="abcde"; s+=2;printf("%d ",s[0]);}执行后的结果是: s+=2这是错误的不能更改数组首地址A、输出字符a的ASCII码B、输出字符c的ASCII码C、输出字符cD、程序出错36、现有一个函数的功能是求出一个元素在数组中的索引,以下该函数的声明正确的是: A、intgetIndex(int *a,intcount,int n);B、void getIndex(int a[],intcount,int n);C、intgetIndex(int a[],int count);D、void getIndex(int *a,int count);37、以下程序的输出结果为: main( ){char s1[40]="country",s2[20]="side";inti=0,j=0;while(s1[i]!='') i++;while(s2[j]!='')s1[i++]=s2[j++]; s1[i]=0;printf("%s ",s1); }A、sideB、countryC、sidetryD、countryside38、有以下程序main(){charch[]="uvwxyz",*pc; pc=ch;printf(" %c ",*(pc+5));}程序运行后的输出结果是: A、zB、0C、元素ch[5]的地址D、字符y的地址39、利用宏,求三个数中的最大值,以下宏定义正确的是: A、#define MAX(a,b,c) ((a)>(b)?(a):(b))>c?((a)>(b)?(a):(b)):(c) B、#define MAX(a,b,c) (a>b?a:b)>c?(a>b?a:b):c C、#defineMAX(a,b,c) (a)>(b)?(a):(b)>c?((a)>(b)?(a):(b)):(c) D、#define MAX(a,b,c) a>b?a:b>c?(a>b?a:b):c40、设有如下定义:structjan{inta;float b;}c2,*p;若有p=&c2;则对c2中的成员a的正确引是: A、(*p).c2.aB、(*p).aC、p->c2.aD、p.c2.a※判断题(共10题,每题2分)1、条件运算符?和:是一对运算符,不能分开单独使用。
c语言 100题
c语言100题1. 构成C语言程序的基本单位是()。
A.函数B.变量C.子程序D.语句是不正确的转义字符。
2. C语言规定:在一个源程序中,main()函数的位置()。
A.必须在最开始B.必须在系统调用的库函数后面C.可以任意D.必须在最后3. 下列哪个选项能够正确地声明一个指向整型变量的指针?A) int *ptr;B) int ptr;C) int ptr;D) int ptr;4.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()。
A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种5. C语言中的简单数据类型有()。
A.整型、实型、逻辑型B.整型、字符型、逻辑型C.整型、实型、字符型D.整型、实型、字符型、逻辑型6. 以下选项中,不正确的整型常量是()。
A.-37B.32,758C.326D.67.以下选项中,不正确的实型常量是()。
A.123B.1e4C.3.640E-1D.0.358.以下选项中,合法的C语言赋值语句是()。
A.a=b=34B.a=34,b=34C.-i;D.m=(int)(x+y);9.设int类型的数据长度为两个字节,则unsigned int类型数据的取值范围是()。
A.0~255B.0~65535C.-32768~32767D.-256~25510.在C语言中,下列哪个函数用于将整数转换为字符串?A) itoa()B) atoi()C) to_string()D) intstr()11.以下叙述中,不正确的是()。
A.在C程序中,%是只能用于整数运算的运算符B.在C程序中,无论是整数还是实数,都能准确无误地表示C.若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值D.前缀和后缀运算符,作为表达式来说有不同的作用12.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&(n=c>d)运算后,n的值为()。
c语言试题,经典(1)
参考答案一、单项选择题:(10分,每题2分)1.char (*p)[10];该语句声明了一个:A。
A) 指向含有10个元素的一维字符型数组的指针变量pB) 指向长度为10的字符串的指针变量pC) 有10个元素的指针数组p,每个元素可以指向一个字符串D) 有10个元素的指针数组p,每个元素存放一个字符串2.以下错误的描述是(C )。
A)不同的函数中可以使用相同名字的变量,互不干扰B)形式参数都是局部变量C)函数定义可以嵌套D)C语言中的函数参数传递都是单向值传递3.以下对二维数组进行正确初始化的是( B )。
A)int a[2][3]={{1,2},{3,4},{5,6}};B)int a[][3]={1,2,3,4,5,6};C)int a[2][]={1,2,3,4,5,6};D)int a[2][]={{1,2},{3,4}};4.已知:union{double k;char c;float a;}test;则sizeof(test)的值是:A。
A)8 B)1 C)4 D)135.设有语句int a = 3; 执行了语句a += a -= a *= a; 后,变量a的值是____B____。
A) 3 B) 0 C) 9 D) -12二、写出下列程序的运行结果。
(10分,每题2分,第2、4、5题打印结果正确但是没有换行时,给1分)1.#include <stdio.h>main(){char c;while ((c = getchar()) != '$'){putchar(c);}printf("End!\n");}程序运行时输入abcdefg$abcdefg↙则程序的运行结果为abcdefgEnd!2.#include<stdio.h>void Fun(int *y){printf("*y = %d\n", *y);*y = 20;printf("*y = %d\n", *y);}main(){int x = 10;printf("x = %d\n", x);Fun(&x);printf("x = %d\n", x);}运行结果是:x = 10*y = 10*y = 20x = 203.#include <stdio.h>main(){int n;for (n=1; n<=5; n++){if (n % 2){printf("*");}else{continue;}printf("#");}printf("$\n");}运行结果是:*#*#*#$4.#i nc lu de <st d io.h>st ru ct d at e{in t y ea r;in t m on th;in t d ay;};vo id f un c(st r uc t da te *p){p->y ea r = 2006;p->m on th = 11;p->d ay = 18;}ma in(){st ru c t da te d;d.ye a r = 2005;d.mo n th = 12;d.da y = 10;pr in t f(“%d,%d,%d\n”,d.ye ar,d.mo nt h,d.da y);fu nc(&d);pr in t f(“%d,%d,%d\n”,d.ye ar,d.mo nt h,d.da y);}运行结果是:2005,12,102006,11,185.#include<stdio.h>in t Fu n(in t x){st at ic i nt y= 10;y += x;re tu rn y;}ma in(){in t y= 0, k;fo r (k=0; k<2; k++){y = Fu n(k);pr in tf("y = %d\n", y);}}运行结果是:y = 10y = 11三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
C语言经典练习题50道(附答案)
1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。
#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。
#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。
#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。
#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。
#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。
c语言必做100题
c语言必做100题1. 编写一个C程序,输出“Hello, World!”。
2. 编写一个C程序,计算并输出1到100的和。
3. 编写一个C程序,判断一个数是否为素数。
4. 编写一个C程序,将一个字符串反转。
5. 编写一个C程序,实现二分查找算法。
6. 编写一个C程序,实现插入排序算法。
7. 编写一个C程序,实现选择排序算法。
8. 编写一个C程序,实现冒泡排序算法。
9. 编写一个C程序,实现快速排序算法。
10. 编写一个C程序,实现希尔排序算法。
11. 编写一个C程序,将一个二维数组转置。
12. 编写一个C程序,计算一个数的阶乘。
13. 编写一个C程序,实现斐波那契数列。
14. 编写一个C程序,计算两个数的最大公约数。
15. 编写一个C程序,计算两个数的最小公倍数。
16. 编写一个C程序,计算一个数的平方根。
17. 编写一个C程序,计算一个数的立方根。
18. 编写一个C程序,实现矩阵乘法运算。
19. 编写一个C程序,实现字符串的查找和替换。
20. 编写一个C程序,实现栈的基本操作(入栈、出栈、查看栈顶元素)。
21. 编写一个C程序,实现队列的基本操作(入队、出队、查看队首元素)。
22. 编写一个C程序,实现链表的基本操作(插入、删除、倒置)。
23. 编写一个C程序,实现二叉树的前序、中序和后序遍历。
24. 编写一个C程序,实现图的深度优先搜索算法。
25. 编写一个C程序,实现图的广度优先搜索算法。
26. 编写一个C程序,实现最短路径算法(Dijkstra算法或Floyd算法)。
27. 编写一个C程序,实现最小生成树算法(Prim算法或Kruskal算法)。
28. 编写一个C程序,实现拓扑排序算法。
29. 编写一个C程序,实现优先队列。
30. 编写一个C程序,实现哈希表的基本操作(插入、查找、删除)。
31. 编写一个C程序,实现堆的基本操作(插入、删除、查找最大值)。
32. 编写一个C程序,实现最大堆排序算法。
c语言笔试100经典题目
1、C语言程序的基本单位是____ A) 程序行B) 语句C) 函数D) 字符、C、12、C语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构B、递归结构,循环结构,转移结构C、嵌套结构,递归结构,顺序结构D、循环结构,转移结构,顺序结构、A、13、C语言规定,程序中各函数之间A) 既允许直接递归调用也允许间接递归调用B) 不允许直接递归调用也不允许间接递归调用C) 允许直接递归调用不允许间接递归调用D) 不允许直接递归调用允许间接递归调用、A、14、C语言中可处理的文件类型是( ) A) 文本文件和数据文件B)文本文件和二进制文件C)数据文件和二进制文件D)数据代码文件、B、15、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数、C、16、C语言提供的合法的数据类型关键字是A)double B) short C) integer D) char、B、17、C语言中,运算对象必须是整型数的运算符是A) % B) \ C) %和\ D) * *、A、18、C语言中函数返回值的类型是由( )决定。
A) return语句中的表达式类型B) 调用函数的主调函数类型C) 调用函数时临时D) 定义函数时所指定的函数类型、D、19、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。
A、该数组的长度。
B、该数组的元素个数。
C、该数组中各元素的值。
D、该数组的首地址。
、D、110、C语言中数组下标的下限是________。
A、1 B、0 C、视具体情况D、无固定下限、B、111、C语言中提供的合法关键字是____ A、swith B、cher C、caseD、default、D、112、C语言中文件的存取方式是________。
A、顺序存取B、随机存取C、顺序存取、随机存取均可D、顺序存取、随机存取均不可、C、113、C语言中最简单的数据类型包括A) 整型、实型、逻辑型B) 整型、实型、字符型C) 整型、字符型、逻辑型D) 整型、实型、逻辑型、字符型、B、114、sizeof(float)是( ) A) 一种函数调用B) 一个不合法的表示形式C) 一个整型表达式D) 一个浮点表达式、C、115、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是A) input x,y,z; B) scanf("%d%d%d",&x,&y,&z);C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z);、B、116、表达式:10!=9的值是A) true B) 非零值C) 0 D) 1、D、117、表示关系x<=y<=z的c语言表达式为A) (X<=Y)&&(Y<=Z)B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z)、A、118、程序片段:在TC20中, int i=65536; printf("%d\n",i);的输出结果是____ A) 65536 B) 0 C) 有语法错误,无输出结果D) -1、B、119、当调用函数时,实参是一个数组名,则向函数传送的是____A) 数组的长度B) 数组的首地址C) 数组每一个元素的地址D) 数组每个元素中的值、B、120、对嵌套子程序调用说法正确的是____。
c语言经典题目100题
c语言经典题目100题C语言经典题目100题C语言经典题目一直是程序员们提高编程技能和理解语言细节的重要手段之一。
在这篇文档中,我将为你准备100道C语言经典题目,帮助你更好地掌握和应用C语言的基础知识。
这些题目将涵盖C语言的各个方面,包括基本数据类型、运算符、流程控制、函数等。
请注意,本文所提供的代码示例可以供你借鉴参考,但请务必自行思考和尝试解决这些问题。
题目1:编写一个C程序,交换两个变量的值。
```c#include<stdio.h>int main(){int a = 5, b = 10;int temp;printf("交换前:a = %d, b = %d\n", a, b);temp = a;a = b;b = temp;printf("交换后:a = %d, b = %d\n", a, b);return 0;```题目2:编写一个C程序,判断一个数是奇数还是偶数。
```c#include<stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);if(num % 2 == 0)printf("%d 是偶数\n", num);elseprintf("%d 是奇数\n", num);return 0;}```题目3:编写一个C程序,求两个数的最大公约数。
```c#include<stdio.h>int main()int num1, num2;int gcd;printf("请输入两个正整数:");scanf("%d %d", &num1, &num2);for(int i = 1; i <= num1 && i <= num2; i++){if(num1 % i == 0 && num2 % i == 0)gcd = i;}printf("%d 和 %d 的最大公约数是 %d\n", num1, num2, gcd);return 0;}```题目4:编写一个C程序,判断一个数是否为素数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1若定义如下变量和数组:int i;*pstatic int a[10] ={1,2,3,4,5,6,7,8,9,10};p=a;则执行下面的语句输出结果是【】。
for(i=3;i<6;i++) printf(“%d”,*(p+i));A) 3 4 5 6 B) 1 2 3 C) 4 5 6 D)3 6 9 2若定义如下变量和数组:int i;static int x[3][3]={1,2,3,4,5,6,7,8,9};则执行下面的语句输出结果是是【】。
for(i=0;i<3;i++)(printf(“%d”,x[i][i]);A) 3 5 7 B) 1 4 7 C) 1 5 9 D)3 6 93若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10}则取元素值6的表达式是【】。
A) *p+6B) *(p+6)C) *p+=5D)p+54下列选项中,不正确的赋值语句是【】A)++j;B) n1=(n2=(n3=0));C) k=i==j;D)a=b+c=15下面程序运行时的输出结果是【】main(){int a=5;printf("\na=%d", ++a+2);}A) a=6 B) 8 C) a=5 D) a= 86下面程序的循环结束后i的值是【】main(){int i;for(i=0;i<10;i++) ;printf("\n%d", i);} ;A) 11 B) 9 C)10 D) 287C语句printf(“y=%d”,(9^2*8+3) % 3*4);运行输出的结果是【】.A) y=0B) y=3C) 8D)y=88判断字符型变量s1的值在…0‟到…9‟之间,正确的表达式是【】A)(s1>=‟0‟) & (s1<=‟9‟)B)(s1>=‟0‟) and (s1<=‟9‟)C)(…0‟<=s1<=‟9‟)D)(s1<=‟9‟) && (s1>=‟0‟)9根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为【】main(){char ch1,ch2,ch3;输入语句printf("%c%c%c",ch1,ch2,ch3);}输入形式:A B C输出形式:A BA) scanf("%c%c%c",&ch1,&ch2,&ch3);B) scanf("%c,%c,%c",&ch1,&ch2,&ch3);C) scanf("%c %c %c ",&ch1,&ch2,&ch3);D) scanf("%c%c",&ch1,&ch2,&ch3);10若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是【】A) scanf("%d%lx,%le",&x,&y,&z);B) scanf("%2d*%d,%lf",&x,&y,&z);C) scanf("%x%*d,%o",&x,&y);D)scanf("%x%o%6.2f",&x,&y,&z);1.下面程序输出的结果是【】。
#include<stdio.h>main(){ int m,n,o,a=2,b=3;m=(++a==--b)?-a:++b;n=++a;o=b;printf(“m=%d,n=%d,o=%d”,m,n,o);}A) m=4,n=4,o=3B) m=4,n=3,o=4C) m=3,n=4,o=4D) m=3,n=4,o=32、下面程序输出的结果是【】。
#include<stdio.h>#define SUB(x,y) (x)*ymain(){ int a=3,b=4;printf(“%d”, SUB(a++,++b));}A)12 B)15 C)20 D)163.若有下面的定义语句:static char str[]={“abcd”}, *string;下面的语句不正确的是【】A) string=”123”;B)str=”aaaa”;C)*(str+2)=‟1‟;D)string=str;4若有宏定义#define MOD(x,y) x%y则执行以下语句后的输出为【】int z,a=15,b=100;z=MOD(b,a);printf("%d\n",z++);A) 11B) 10C) 6D) 宏定义不合法5在宏定义#define FUN(a) a*a中,宏展开FUN(a)中的a用一个【】代替。
A)赋值语句B)指针变量C)字符串D) 实参值6若j为整型变量,则以下循环执行次数是【】for(j=2;j==0; ) printf(“%d”,j--);A)无限次B)0次C)1次D)2次7执行语句for(j=1;j++<4; );后变量j的值是【】A)3 B)4 C)5 D)不定8若a=2, b=3; 则语句:printf(“%d”,(a=2)&&(b=2));的输出结果是【】A)无输出B)结果不确定C)0 D)19设有如下的变量定义:int i =8,k ,a,b ;unsigned long w=5;double x=1,42,y=5.2;则以下符合C语言语法的表达式是【】A) a=a+=(b=4)*(a=3) B) x%(-3);C ) a=a*3=2 D) y=float(i)10假定有以下变量定义:int k=7 ,x=12;则能使值为3的表达式是【】A ) x%=(k%=5) B) x%=(k-k%5)C) x%=k-k%5 D) (x%=k)- (k%=5)11设x,y,z,t均为int型变量,则执行以下语句后,t的值为【】x=y=z=1;t=x||y&&z;A)不定值B)2 C)1 D)012下面程序的执行结果是【】main( ){int i, j, m, n;i=8; j=10;m=++i; n=j++;printf(“%d, %d, %d, %d”, i, j, m, n,);}A) 9, 10, 9, 10 B)9, 11, 9, 10 C)9, 11, 9, 11 D)9, 10, 9, 1113下面程序的执行结果是【】main(){ int a,b;a=20;b=10;a+=a+b;a-=a-b;printf("%d\n",a);}A) 10 B) -10 C) 30 D) 014下面程序的执行结果是【】main(){ int x,a=1,b=2,c=0;x=-a||b&&++c;printf("%d\n",x);}A) 1 B) 0 C) -1 D) 非零值15设有程序段int k=10;while(k=0) k=k-1;下面描述正确的是【】A)While循环执行10次B)循环是无限循环C)循环体语句一次也不执行D)循环体语句执行一次16下面程序的执行结果是【】main(){int x=10;do {x--;} while( --x);printf("%d\n",x--);}A) 0 B) -1 C) 1 D) 817)120.设说明为int a=1; 执行下列switch语句后,b获值为2的是【】。
A. switch (a) {B. switch (a) {case 1: b=1; case 1: b=1;case 2: b=2; case 2: b=2; break;default: b=3; default:b=3:} }C. switch (a) {D. switch (a) {case 1: b=1;break; case 1: b=1; break;case 2: b=2;break; case 2: b=2;default:b=3;break; default:b=3;} }18设程序为int i,j,n;for (i=1;i<=10;i++){n=0;for (j=1;j<=10;j++)n=n+j;}printf(“n=%d\n”,n);运行后输出n的值是【】。
A) 5500 B) 5050 C) 55 D) 500019有如下程序main( ){char a[10]={“123456789”};char *p; int i=8;p=a+i;printf(“%s\n”,p-3);}运行后的输出结果是【】。
A) 6 B) 6789 C)‟6‟ D) 78920以下程序的输出结果是【】viod fun (int a,int b,int c){a=456;b=567;c=678;}main(){int x=10,y=20,z=30;fun (x,y,z);printf(“%d,%d,%d\n”,x,y,z);}A)30,20,10 B) 10,20,30 C)456,567,678 D) 678,567,456 21以下程序运行后,输出结果是【】main(){char *s=“abcde”;s+=2;printf(“%s\n”,s);}A ) cde B)c C) 字符C的地址D) 出错22设有以下宏定义:#define N 3#define Y(n) ((N+1)*n)则执行以下语句后,z的值为【】z=2*(N+Y(5+1));等价于z=2*(N+(N+1)*5+1);N=3带入A) 出错B)42 C) 48 D) 5423以下程序执行输出结果是【】main(){int a,,b,k=3,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+6;printf(“%d,%d\n”,a,b);}A)0,6.5 B)1,6 C)0,6 D) 6,6.524下面程序的输出是【】fun3(int x){static int a=3;a+=x;return(a);}main(){int k=2,m=1,n;n=fun3(k);n=fun3(m);printf(“%d\n”,n);}A)3 B)4 C)6 D)925有以下程序段int k=0while(k=1) k++;while 循环执行的次数是【】A) 无限次B) 有语法错,不能执行C)一次也不执行D) 执行1次26有如下程序main( ){ int x=1,a=0,b=0;switch (x){ case 0: b++;case 1: a++;case 2: a++; b++;}printf(“a=%d,b=%d\n”,a, b);}该程序的输出结果是【】A)a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=227下面程序的输出结果是【】A)0 B) 1 C) 10 D) 9main(){ int a[]={1,2,3,4,5,6,7,8,9,0,},*p;p=a;printf("%d\n",*p+9);}28下面程序的运行结果是【】#define ADD(x) x+xmain(){ int m=1,n=2,k=3;int sum=ADD(m+n)*k;printf(“sum=%d”,sum);}A) sum=9 B) sum=10 C) sum=12 D) sum=1829139. 以下程序的输出结果是【】main(){ int i, y[3][3]={1,2,3,4,5,6,7,8,9};for(i=2;i>=0;i--) printf("%d,",y[i][ i]);}A) 1,5,9 B) 3,4,7 C) 9,5,1 D)7,4,330以下程序运行结果是【】。