c语言练习题7
中级程序设计员(C语言)知识试卷(7)

线名姓封号证考准区标地程序设计员理论考试试卷注意事项1.请首先按要求在试卷的标封处填写您的地区、准考证号和姓名。
2.请仔细阅读各种题目的回答要求,在答题卡位置填写您的答案。
3.请用蓝色(或黑色)钢笔、圆珠笔答卷,不要在试卷内填写与答题无关的内容。
4.本试卷满分为100分;考试时间60分钟。
一、单项选择题(每小题1分,本题共20分)1、二进制语言是属于()。
A、面向机器语言B、面向问题语言C、面向过程语言D、面向汇编语言2、下列字符列中,不是用来表达转义字符的是()。
A、\\B、\'C、074D、\03、若有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则Z的值为()。
A、1.9B、1C、2D、2.44、在C语言中,下列说法中错误的是()。
A、函数定义可以分为两个部分:函数说明部分和函数体B、主函数可以调用任何非主函数C、任何非主函数可以调用其它任何非主函数D、程序可以从任何函数开始执行5、在以下字符列中,合法的长整型常数是()。
A、OLB、4962710C、0.054838743D、2.1869el06、数据库系统的三级模式不包括()。
A、概念模式B、内模式C、外模式D、数据模式7、执行语句“x=(a=3,b=a—-);”后,X,a,b的值依次为()。
A、3,3,2B、2,3,2C、3,2,3D、2,3,38、设有无符号短整型变量i、j、k,i值为013,j值为OX13。
计算表达式“k=~i|j>>3”后,k的值是()。
A、06B、0177776C、066D、01777669、若有定义:int a,b;,通过语句scanf("%d;%d",&a,&b);,能把整数3赋给变量a,5赋给变量b的输入数据是()。
A、3 5B、3,5C、3;5D、3510、设X、y、Z、t均为int型变量,则执行以下语句后,t的值为()。
x=y=z=1;t=++x||++y&&++z;A、不定值B、2C、lD、011、若有定义语句:int a=10;double b=3.14;,则表达式'A'+a+b值的类型是()。
《C语言程序设计》试题七及答案

《C语言程序设计》试题七 (1)一、填空题 (1)二、选择题 (2)三、判断题 (3)四、程序填空题 (4)五、阅读程序,写出下列程序段的结果 (5)六、编程题 (6)《C语言程序设计》试题七答案 (7)《C语言程序设计》试题七一、填空题1.在C语言程序设计中,正确的标识符是由____________________组成的。
2.设x=4,y=(++x)+(++x);那么y的值为_____,表达式执行后,变量x的值为_______。
3.一个变量的指针是指_____________________________________________。
4.能够构成一个数组,其元素满足的特点是__________________________________;那么,构成结构体的成员可以是_________________________________________。
5.下面运算符< % ++ = 按照优先级从高到低排列顺序为______________。
6.C程序设计中语句后的符号/*……*/ 所起作用是_________________________。
7.写出下面表达式的值3*5/7+7%3____________________ x=2 ; y=4; (x++)+y _____________________ 3+4>=7-10_____________________ 3>4 ? 3%2: 1 ___________________x=2,y=2;++x||++y_______________ x=3 ; x+=x-=2 _____________________二、选择题⑴.在使用TurboC2.0环境编辑程序时,运行某程序使用的菜单项为()A.FILE B.RUN C.EDIT D.OPTION⑵.下列语句不具有赋值功能的是()A.a*=b B.x=1 C.a+b D.a++⑶.C语言程序中,当出现条件分支语句if~else时, else与()组成配对关系A.同一复合语句内部的if B.在其之前任意的ifC.在其之前未配对的最近的if D.首行位置相同的if⑷.下列数组定义方式不正确的语句是()A.char x[5]; B.char y[]={‘h’, ‘e’, ‘l’, ‘l’, ‘o’};C. int x[10]={12,13,14,15}; D.int y[];⑸. 若有如下定义和语句,且0<=i<5,下面()是对数值为3数组元素的引用int a[]={1,2,3,4,5},*p,i;p=a;A. *(a+2) B.a[p-3] C.p+2D.a+3⑹. 下列()表达式的值为真a=5; b=8; c=10; d=0A.a*2>8+2 B.a&&d C. (a*2-c)||d D.a-b<c*d⑺. 下列字符数组长度为5的是() A. char a[]={‘h’, ‘a’, ‘b’, ‘c’, ‘d’};B. char b[]= {‘h’, ‘a’, ‘b’, ‘c’, ‘d’, ‘\0’};C. char c[10]= {‘h’, ‘a’, ‘b’, ‘c’, ‘d’};D. char d[6]= {‘h’, ‘a’, ‘b’, ‘c’, ‘\0’ }⑻. 执行下列程序后,其结果为()int a[]={2,4,6,8,10,12}; *p;p=a;*(p+4) =2;printf(“%d,%d\n”,*p,*(p+4));A.0,10 B.0,2 C.2,10 D.2,2⑼.有下列结构体,对该结构体变量stu的成员项引用不正确的是()struct student{ int m;float n;} stu ,*p;A. stu.n B.p->m C.(*p).m D.p.stu.n ⑽.下列函数中不能用于对文件进行输入输出操作的是()A.fscanf( ) B.printf( ) C.fgetc( ) D. fputs( )三、判断题1.C语言程序设计可以对计算机硬件进行操作。
C语言习题集合7(指针)

第七部分 指针7.1 选择题1. 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是()。
A . p=q;B . *p=*q;C . a=*q;D . q=a;2. 若定义:int a=511, *b=&a ;,则printf("%d\n ", *b);的输出结果为:A . 无确定值B . a 的地址C . 512D . 5113. 已有定义 int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是()。
A . a=*p1+*p2;B . p1=a;C . p1=p2;D . a=*p1*(*p2);4. 变量的指针,其含义是指该变量的()。
A . 值B . 地址C . 名D . 一个标志5. 若有说明语句:int a, b, c, *d=&c ;,则能正确从键盘读入三个整数分别赋给变量a 、b 、c 的语句是()。
A . scanf("%d%d%d ", &a, &b, d);B . scanf("%d%d%d ", a, b, d);C . scanf("%d%d%d ", &a, &b, &d);D . scanf("%d%d%d ", a, b,*d);6. 若已定义int a=5; 下面对(1)、(2)两个语句的正确解释是()。
(1) int *p=&a; (2) *p=a;A . 语句(1)和(2)中的*p 含义相同,都表示给指针变量p 赋值。
B . (1)和(2)语句的执行结果,都是把变量a 的地址值赋给指针变量p 。
C . (1)在对p 进行说明的同时进行初始化,使p 指向a ;(2)变量a 的值赋给指针变量p 。
D . (1)在对p 进行说明的同时进行初始化,使p 指向a ;(2)将变量a 的值赋予*p 。
C语言上机考试试题7

果自负)。该程序功能:分别统计字符串中所有英文字母中的各元音字 母个数。例如:在程序中输入: apple 结果:1 1 0 0 0 答案:gets(a); 运行样例1行 运行样例1:apple 结果:1 1 0 0 0 3. 该程序功能:运行时若输入a、n的值分别为3、6,则输出表达式 3+33+333+3333+33333+333333的值。 #include <stdio.h> void main() { int i,a,n,t=0; int s=0; scanf("%d%d",&a,&n); for(i=1;i<=n;i++) { t=t*10+i; /*$1*/ s=s+t; } printf("%d\n",s); } 操作说明: 在考生目录的**子目录下,有*.c文件,该文件中“/*$1*/”行中的语 句 t=t*10+i; 有错误,请改正(注意:不得加行、减行、加句、减句, 否则后果自负)。该程序功能:根据输入情况来输出一个表达式的值。 例如:在程序中输入: 3 3 ,结果为表达式 3+33+333的值:369。 答案:t=t*10+a; 运行样例1行 运行样例1:3 3 结果:369 4. 以下函数mystrcat(str1,str2)的作用是:把字符串str2连接到字符串 str1后面,形参str1和str2用指针实现。 #include <stdio.h> void mystrcat(char *str1,char *str2) { while(*str1!='\0') str1++; while(*str2!='\0')
c语言第7章函数练习题

4. C语言程序中,当函数调用时( )。 A. 实参和形参各占一个独立的存储单元 B. 实参和形参共用一个存储单元 C. 可以由用户指定是否共用存储单元 D. 计算机系统自动确定是否共用存储单元
fun(int x,int y,int z)
{ z=x*x+y*y;}
main()
{
int a=31;
fun(5,2,a);
printf("%d",a);
}
A.0
B.29
30.下列程序执行后的输出结果是( )。
voidfunc1(int i);
voidfunc2(int i);
charst[]="hello,friend!";
printf("%d\n",x);
}
上面程序的输出结果是( )。
A.720
B.120
C.24
39.下面程序的输出是( )。
main()
{
intt=1;
fun(fun(t));
}
fun(inth)
{
staticinta[3]={1,2,3};
intk;
for(k=0;k<3;k++) a[k]+=a[k]-h;
B. 不同函数中,可以使用相同名字的变量
C. 形式参数是局部变量
D. 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效
C语言基础练习题(含答案)

第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。
BA、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2. 下列字符序列中,不可用作C语言标识符的是()。
BA.abc123 B. C._123_ D._ok 3. 正确的C语言标识符是()。
AA._buy_2 B.2_buy C._buy D.buy4. 请选出可用作C语言用户标识符的一组标识符()。
BA.void B.a3_b3 C.For D.2a define _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
BA.\\ B.\0xAA C.\t D.\06. 不属于C语言关键字的是()。
dA.int B.break C.while D.character 7. 是C语言提供的合法关键字的是()。
bA.Float B.signed C.integer D.Char8. 以下不能定义为用户标示符的是()。
bA.scanf B.Void C._3com_ D.int9. 一个C程序是由()。
bA.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。
cA.程序行 B.语句 C.函数 D.字符11. 下列说法中,错误的是()。
aA.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12. 以下说法中正确的是()。
cA.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C编译程序是()。
C语言第7次作业
C语⾔第7次作业单选题:1、若要求在if后⼀对圆括号中表⽰a不等于0的关系,则能正确表⽰这⼀关系的表达式为________。
A.a < > 0B.!aC.a=0D.a!=0学⽣答案: C参考答案: D2、若变量都已经说明,则以下程序段输出为( )a=10;b=50;c=30;if (a > b) a=b; b=c;c=a;printf("a=%db=%dc=%d\n",a,b,c);A.a=10 b=50 c=10B.a=10 b=30 c=10C.a=50 b=30 c=10D.a=50 b=30 c=50学⽣答案: C参考答案: B3、以下程序的输出结果是main(){ int a= -1,b=1;if((++a < 0)&& ! (b-- < =0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A.-1 1B.0 1C.1 0D.0 0学⽣答案: B参考答案: C{ int a,b,s;scanf("%d%d",&a,&b);s=a;if (a < b) s=b;s=s*s;printf("%d\n",s);}A.14B.16C.18D.20学⽣答案: C参考答案: B5、下⾯的程序是______main(){ int x=3,y=0,z=0;if (x==y+z) printf("****");else printf("####");}A.有语法错误不能过通过编译B.输出****C.可能通过编译,但是不能通过连接,因⽽不能运⾏D.输出####学⽣答案: C参考答案: D6、请读程序:main(){ float x,y;scanf("%f",&x);if(x < 0.0) y=0.0else if((x < 5.0)&&(x!=2.0))y=1.0/(x+2.0);else if( x < 10.0) y=1.0/x;}若运⾏时从键盘上输⼊2.0(表⽰回车),则上⾯程序的输出结果是A.0.000000B.0.250000C.0.500000D.1.000000学⽣答案: B参考答案: C7、执⾏下⾯语句后的输出为( )int i= -1;if (i < =0)printf("****\n")else printf("%%%%\n")A.****B.%%%%C.%%%%CD.有语法错,不能执⾏学⽣答案: B参考答案: D8、在执⾏以下程序时,为了使输出结果为t=4,则给a和b输⼊的值应满⾜的条件是main( ){ int s,t,a,b;scanf("%d,%d",&a,&b);s=1;t=1;if(a < 0)s=s+1;if(a > b)t=s+1;else if(a= =b)t=5;else t=2*s;printf("t=%d\n",t);}A.0 > a > bB.a=0 < b参考答案: D9、下列语句正确的是( )A.if(a > b > c) temp=aB.if((a=b) > 0) temp=aC.int a=b=c=4D.int a;scanf(%d,a)学⽣答案: C参考答案: B10、与 y=(x > 0?1:x < 0?-1:0);的功能相同的if语句是A.if(x > 0) y=1; else if(x < 0) y=-1; else y=0;B.if(x) if(x > 0) y=1; else if(x < 0) y=-1; else y=0;C.y=-1 if(x) y=1; else if(x==0) y=0; else y=-1;D.y=0 if(x > -0) if(x > 0) y=1; else y=-1;学⽣答案: B参考答案: A11、有如下程序main0{ 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=1B.a=1,b=1C.a=1,b=0D.a=2,b=2学⽣答案: B参考答案: Aif(x < 0.0) y=0.0;else if(x < 10.0) y=1.0/x; else y=1.0;printf("%f\n",y);}该程序的输出结果是A.0.000000B.0.250000C.0.500000D.1.000000学⽣答案: C参考答案: C13、有如下程序main(){ int a=2,b=-1,c=2;if(a < b)if(b<0) c=0;else c++printf("%d\n",c);}该程序的输出结果是A.0B.1C.2D.3学⽣答案: C参考答案: C14、若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是A.switch(a+b); {case 1:y=a+b;break; case 0:y=a-b;break; case3:y=b-a,break; }B.switch(a*a+b*b) {case 3: case 1:y=a+b;break; }C.switch a {case c1:y=a-b;break; case c2:y=a*d;break; default:x=a+b; }D.switch(a-b) {default:y=a*b;break; case 4:x=a+b;break; case15、已知 int x=10,y=20,z=30;以下语句执⾏后x,y,z的值是if(x>y)z=x;x=y;y=z;A.x=10,y=20,z=30B.x=20,y=30,z=30C.x=20,y=30,z=10D.x=20,y=30,z=20学⽣答案: C参考答案: B16、请阅读以下程序:main( ){int a=5,b=0,c=0;if(a==b+c) printf("***\n");else printf("$$$\n");}以上程序A.有语法错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$学⽣答案: B参考答案: D17、读下列程序:#includemain(){float a,b,t;scanf(”%f,%f”,&a,&b);if(a>b){t=a;}prinff(”%5.2f,%5.2f'’,a,b);}运⾏时从键盘输⼊3.8和-3.4,则正确的输出结果是( )。
C语言习题(7)
C语言习题(第7章函数)一.选择题1.以下说法正确的是________。
A)C语言程序总是从第一个函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分2.以下正确的说法是___________。
A)用户若需要调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义C)系统不允许用户重新定义标准库函数D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。
3.以下正确的函数定义是___________。
A)double fun(int x, int y); B)int fun(int x,y){ z=x+y ; return z ; } { int z ; return 3;}C)double fun (x,y) D)double fun (int x, int y){ int x, y ; double z ; { double z ; z=x+y;z=x+y ; return z ; } return z ; }4.C语言中,简单变量做实参和形参时,以下正确的说法是___________。
A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用相同的存储单元D)形参时虚拟的,不占用存储单元5.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是___________。
A)地址传递B)单向值传递D)由用户指定传递方式6.C语言规定,函数返回值的类型是由___________决定的。
A)return语句中的表达式类型B)调用该函数时的主调函数类型C)调用该函数时由系统临时D)在定义函数时所指定的函数类型7.以下正确的描述是___________。
c语言程序设计课后习题答案第7章
#include<stdio.h>main(){int a[10],n,sum=0,i;float ave;printf("enter n:\n");scanf("%d",&n);printf("enter %d ge zheng shu:\n",n);for(i=0;i<n;i++){scanf("%d",&a[i]);sum=sum+a[i];}ave=1.0*sum/n;printf("ave=%.2f\n",ave);}/*练习7-2*/#include<stdio.h>main(){int a[10],n,i;printf("enter n:\n");scanf("%d",&n);printf("enter %d ge zheng shu:\n",n);for(i=0;i<n;i++){printf("第%d个:\n",i+1);scanf("%d",&a[i]);printf("倒序:\n");while(a[i]!=0){printf("%d",a[i]%10);a[i]=a[i]/10;}printf("\n");}}#include<stdio.h>main(){int a[5],x,i,k=0;printf("enter 5 ge zheng shu:\n");for(i=0;i<5;i++)scanf("%d",&a[i]);printf("enter x:\n");scanf("%d",&x);for(i=0;i<5;i++)if(a[i]==x){printf("xia biao wei : %d\n",i);k=1;}if(k==0)printf("Not Found\n");}/*练习7-4*/#include<stdio.h>main(){int a[10],n,i,k=0,x,max;printf("enter n:\n");scanf("%d",&n);printf("enter %d ge zheng shu:\n",n);for(i=0;i<n;i++)scanf("%d",&a[i]);max=a[0];for(i=1;i<=n-1;i++)if(max<a[i]){max=a[i];k=i;}printf("max=%d xia biao=%d",max,k);x=a[n-1];a[n-1]=a[k];a[k]=x;printf("\n");for(i=0;i<n;i++)printf(" %d ",a[i]);printf("\n");}/*练习7-11*/#include<stdio.h>main(){char str[80];int i,j,count=0;printf("输入一个以回车符结束的字符串:\n");i=0;while((str[i]=getchar())!='\n')i++;str[i]='\0';printf("再输入一个字符:\n");str[80]=getchar();for(j=0;j<=i-1;j++)if(str[80]==str[j])count++;printf("%c字符在字符串中出现的次数为:%d\n",str[80],count);for(j=0;j<=i-1;j++)putchar(str[j]);printf("\n");}/*习题七1*/#include<stdio.h>main(){int x,y,n,a[10],i,min,max;printf("输入n:\n");scanf("%d",&n);printf("输入%d个整数:\n",n);for(i=0;i<n;i++)scanf("%d",&a[i]);min=0;for(i=1;i<n;i++)if(a[min]>a[i])min=i;max=0;for(i=1;i<n;i++)if(a[max]<a[i])max=i;x=a[min];a[min]=a[0];a[0]=x;y=a[max];a[max]=a[n-1];a[n-1]=y;for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n");}/*习题七2*/#include<stdio.h>main(){int x,n,a[10],i,j,max;printf("输入n:\n");scanf("%d",&n);printf("输入%d个整数:\n",n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=1;i<n;i++){ max=i-1;for(j=i;j<n;j++)if(a[max]<a[j])max=j;x=a[max];a[max]=a[i-1];a[i-1]=x;}for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n");}/*习题七4*/#include<stdio.h>main(){int m,n,a[6][6],i,j,b[6]={0};printf("输入m:\n");scanf("%d",&m);printf("输入n:\n");scanf("%d",&n);printf("输入%d和%d的矩阵:\n",m,n);for(i=0;i<m;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);b[i]=b[i]+a[i][j];}}printf("shu chu:\n");for(i=0;i<m;i++){for(j=0;j<n;j++)printf(" %d",a[i][j]);printf("\n");}printf("shu chu hang he :\n");for(i=0;i<m;i++)printf("%4d",b[i]);printf("\n");}/*习题7.6*/#include<stdio.h>main(){char str[80];int i,j;printf("输入一个以回车符结束的字符串:\n");i=0;while((str[i]=getchar())!='\n')i++;printf("倒序输出:\n");for(j=i-1;j>=0;j--)putchar(str[j]);printf("\n");}/*新7.6*/#include<stdio.h>main(){int a[10],i,n;printf("输入整数n:\n");scanf("%d",&n);printf("输入%d个整数:\n",n);for(i=0;i<n;i++){scanf("%d",&a[i]);}printf("倒序输出:\n");for(i=0;i<n;i++){printf("%5d",a[n-1-i]);}printf("\n");}/*习题7.7*/#include<stdio.h>main(){char str[80];int i,j,count=0;printf("输入一个以回车符结束的字符串:\n");i=0;while((str[i]=getchar())!='\n')i++;printf("输出其中的大写辅音字母:\n");for(j=0;j<=i-1;j++)if(str[j]>='B'&&str[j]<='Z'&&str[j]!='E'&&str[j]!='I'&&str[j]!='O'&&str[j]!='U'){putchar(str[j]);count++;}printf("\n");printf("大写辅音字母数量为:%d\n",count);}/*习题7.8*/#include<stdio.h>main(){char str[80];int i,j,count=0;printf("输入一个以回车符结束的字符串:\n");i=0;while((str[i]=getchar())!='\n')i++;printf("输出相应交换后的字符串:\n");for(j=0;j<=i-1;j++)if(str[j]>='A'&&str[j]<='Z')str[j]=155-str[j];for(j=0;j<=i-1;j++)putchar(str[j]);printf("\n");}上文已完。
C语言程序设计课堂练习题7-9章-学生用2
C语言程序设计课堂练习题第7章指针一、选择题1.已知p是一个整型指针变量,且p指向的是整型变量a的地址,则下列哪个语句是错误的?()A.*p=a;B. p=&a;C.p=&*p;D.p=*&p;2.下列哪一项是不正确的字符串赋值或不正确的赋初值的方式?()A. char *str;str=“string“;B.char str[7]={‟s‟, ‟t‟, ‟r‟, ‟i‟, ‟n‟, ‟g‟ };C. char str1[10];str1= “string“;D.char str1[]=“string“,*str2=”1234567”;3.对于类型相同的指针变量,不能进行()运算。
A. +B. -C. =D.==4.已知p是一个整型指针变量,a为一个一维整型数组,且p=a;则下列哪个语句是错误的?()A.*p=a[0];B. *p=*a;C. p=a+1;D.p=*a;5.若有以下说明语句,则p2-p1的值为()int a[10],*p1,*p2;p1=a;p2=&a[5];A. 5B. 6C. 10D.没有指针与指针的减法6.下列定义中不正确的是()A.int *p;B. int p[10];C.int (*p)()D.int *(p(n));7.以下程序的输出结果是()main(){int a[]={1,2,3,4,5,6},*p;p=a;printf(“%d,%d\n”,*p,*(p+4));}A. 0,5B.1,5C.0,6D.1,68.若有以下说明和语句,且0<=i<10,则下面哪个不是对数组元素地址的正确表示()。
int a[]={1,2,3,4,5,6,7,8,9,10},*p,i;p=a;A.&(a+1)B.a++C. &pD.&p[i]二、写出程序的输出结果1.main(){int a=10,b=20,s,t,m,*pa,*pb;pa=&a;pb=&b;s=*pa+*pb;t=*pa-*pb;m=*pa**pb;printf“s=%d\nt=%d\nm=%d\n“,s,t,m);}2.int a[][3]={9,7,5,3,1,2,4,6,8};int i,j,s1=0,s2=0;for(i=0;i<3;i++)for(j=0;j<3;j++){if (i==j) s1=s1+a[i][j];if(i+j==2) s2=s2+a[i][j];}printf(“%d\n%d\n”,s1,s2);}3.main(){int a[5]={1,3,5,7,9},*p,**k;p=a;k=&p;printf(“%d”,*(p+2));printf(“%d”,**k);}4.main(){int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int (*p)[4],i=2,j=2;p=a;printf(“%d”,*(*(p+i)+j)+*((a+i)+j)+**(p+i)+**p);}三、填空1.在空格地方填上语句,以实现字符串复制的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13、以下程序的输出结果是 h 。 main() { char *p="abcdefgh",*r; long *q; q=(long*)p; q++; r=(char*)q; printf("%s\n",r); }
efg
14、若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是b A) i=*p; B) *p=*&j; C) i=&j; D) i=**p; 15、以下定义语句中,错误的是d A) int a[]={1,2}; B) char *a[3]; C) char s[10]=”test”; D) int n=5,a[n]; 16、若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(d)。 A. p=q; B. *p=*q; C. a=*q; D. q=a; 17、若定义:int a=511, *b=&a;,则printf(“%d\n”, *b);的输出结果为:d A. 无确定值 B. a的地址 C. 512 D. 511 18、已有定义 int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是(b)。 A. a=*p1+*p2; B. p1=a; C. p1=p2; D. a=*p1*(*p2); 19、若需要建立如图所示的存储结构,且已有说明double *p, x=0.2345; 则正确的 赋值语句是(b)。 A. p=x; C. *p=x; √B. p=&x; D. *p=&x;
6、若有一些定义和语句 #include <stdio.h> int a=4,b=3,*p,*q,*w; p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是a √A) *q=0; B) w=p; C) *p=a; D) *p=*w;
7、下列程序执行后输出的结果是(84 )。 int d=1; fun (int p) { int d=5; d+=p++; printf("%d",d); } main( ) { int a=3; fun(a); d+=a++; printf("%d\n",d); }
0.2345
p
x
20、设char *s=“\ta\017bc”;则指针变量s指向的字符串所 占的字节数是(b)。 A. 9 B. 5 C. 6 D. 7 21、下面程序段中,for循环的执行次数是(c)。 char *s=“\ta\018bc”; for (;*s!=‘\0’;s++) printf(“*”); A. 9 B. 5 C. 6 D. 7 22、以下正确的程序段是(d)。 A. char s[20]; B. char *s; scanf("%s", &s); scanf("%s", s); C. char s[20]; D. char s[20], *t=s; scanf("%s", &s[2]); scanf("%s", t[2]);
8、求3X3矩阵主对角线元素之和。 9、打印99乘法表
10、以下程序运行后的输出结果 是 9876876 。 main() { char s[ ]=“9876”,*p; for ( p=s ; *p>’’;p++) printf(“%s”,p); }
11、下面程序的输出结果为 __abc,ABC,bc,BC,c,C______。 #include<stdio.h> main() {int i; char *m="abc",k[4]; k[0]='A';k[1]='B';k[2]='C';k[3]='\0'; for(i=0;i<3;i++) printf("%s,%s,",m+i,k+i); }
5、有以下程序 void f(int x,int y) { int t; if(x<y){ t=x; x=y; y=t; } } main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf("%d,%d,%d\n",a,b,c);4,3,5 }
3、有以下程序 main() { int i=0,s=0; do{ if(i%2){i++;continue;} i++; s+=i; } while(i<7); printf("%d\n",s); } 执行后输出的结果是16
4、以下程序的输出结果是BBB main() { char cf[3][5]={"AAAA","BBB","CC"}; printf("\"%s\"\n",cf[1]); }
1、有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 执行后输出的结果是 011122
√2、有以下程序 main() { int p[7]={11,13,14,15,16,17,18},i=0,k=0; while(i<7&&p[i]%2){k=k+p[i]; i++;} printf("%d\n",k); } 执行后输出的结果是24
12、main( ) { char str1[ ]="how do you do",str2[10]; char *p1=str1,*p2=str2; scanf("%s",p2); printf("%s",p2); printf("%s\n",p1); } 运行上面的程序,输入字符串 HOW DO YOU DO 则程序的输出结果是 HOWhowdoyoudo