广工C语言编程题目Word版
(完整word版)C语言基础练习题(含答案)

目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。
(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.V oid C._3com_ D.int9.一个C程序是由()。
广科c语言考试题及答案

广科c语言考试题及答案一、单项选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是______。
A. varB. defineC. intD. let答案:C2. 下列哪个选项不是C语言的关键字?A. ifB. elseC. gotoD. loop答案:D3. 在C语言中,用于表示逻辑“与”操作的运算符是______。
A. &&B. ||C. ==D. !=答案:A4. 下列哪个不是C语言的标准库函数?A. printfB. scanfC. mallocD. strcpy答案:D5. 在C语言中,用于定义一个结构体的关键字是______。
A. structB. unionC. typedefD. enum答案:A6. C语言中,表示“不等于”的运算符是______。
A. ==B. !=C. =D. <=答案:B7. 下列哪个选项是合法的C语言常量?A. 0x1AB. 1.23eC. 3.14159D. 0.1e-5答案:A8. 在C语言中,用于定义一个枚举类型的关键字是______。
A. enumB. structC. unionD. typedef答案:A9. C语言中,用于定义一个宏的预处理命令是______。
A. #defineB. #includeC. #pragmaD. #import答案:A10. 下列哪个选项是C语言的合法语句?A. int a = 0;B. int b = 0.5;C. int c = "string";D. int d = 'a';答案:A二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型数组的语法是______。
答案:int array_name[size];2. C语言中,用于定义一个函数的关键字是______。
答案:int function_name(parameters);3. C语言中,用于定义一个字符型数组的语法是______。
(完整版)C语言考试题库及答案(可编辑修改word版)

C 语言理论上机考试选择题部分(共200 题)1、下面程序的输出是 D#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是 D .A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C 语言字符常量是 A .A) '\t' B) "A" C) 65 D) A4、表达式: 10!=9 的值是 D .A) true B) 非零值C) 0 D) 15、C 语言提供的合法的数据类型关键字是 B .A) Double B) short C) integer D) Char6、字符(char)型数据在微机内存中的存储形式是 D .A) 反码B) 补码C) EBCDIC 码D) ASCII 码7、C 语言程序的基本单位是 C .A) 程序行B) 语句C) 函数D) 字符8、设int a=12,则执行完语句a+=a-=a*a 后,a 的值是DA) 552 B) 264 C) 144 D) -2649、执行下面程序中的输出语句后,输出结果是 B .#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 1010、下面程序的输出是 B .#include<stdio.h>void main(){int x=023;printf("%d\n",--x);} A) 17 B) 18 C) 23 D) 2411、下面程序的输出的是 C .#include<stdio.h>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D)不确定的值12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是 A .#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值13、若要求在if 后一对圆括号中表示a 不等于0 的关系, 则能正确表示这一关系的表达式为 D .A) a<>0 B) !a C) a=0 D) a14、以下程序的输出结果是 D .#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 915、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是 D .A) 1 B) 0 C) 4 D) 316、为表示关系x≥y≥z,应使用C 语言表达式 A .A) (x>=y)&&(y>=z) B) (x>=y)AND(y>=z)C) (x>=y>=z) D) (x>=y) & (y>=z)17、C 语言中非空的基本数据类型包括 B .A) 整型,实型,逻辑型B) 整型,实型,字符型C)整型,字符型,逻辑型D)整型,实型,逻辑型,字符型18、若x 和y 都是int 型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是 A .A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值19、阅读下面的程序#include<stdio.h>void main(){char ch;scanf("%3c",&ch);printf("%c",ch);}如果从键盘上输入A) 0 B) 144 C) 12 D) -26423、若已定义int a,则表达式a=10,a+10,a++的值是 B_.A) 20 B) 10 C) 21 D) 1124、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是 D .A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=45abc<回车>则程序的运行结果是 A .A) a B) b C) c D) 程序语法出错25、下面程序的输出结果是 D .#include<stdio.h>void main(){20、阅读下面的程序int a=-1, b=4, k;#include<stdio.h> k=(++a<=0)&&(b--<=0);void main() printf("%d,%d,%d\n",k,a,b);{ }int i,j; A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,3 i=010;j=9; 26、下面程序的输出结果是 A .printf("%d,%d",i-j,i+j); #include<stdio.h>} void main()则程序的运行结果是 D . {A) 1,19 B) -1,19 C) 1,17 D) -1,17 int a=5,b=3;float x=3.14, y=6.5;21、阅读下面的程序printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));#include<stdio.h> }void main() A) 1,0 B) 0,1 C) 1,1 D) 0,0 {int i,j,m,n; 27、执行下面程序段后,输出结果是 A .i=8;j=10; int a;m=++i; int b=65536;n=j++; a=b;printf("%d,%d,%d,%d",i,j,m,n); printf("%d\n",a);} A) 65536 B) 0 C) -1 D) 1 程序的运行结果是 C .A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1122、已知a=12,则表达式a+=a-=a*=a 的结果是 A . 28、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c); 则输出结果是 B .A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1029、已知有double 型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是 B . A) 2.4 B) 2.5 C) 2.75 D) 030、若已定义x 和y 是整型变量,x=2;,则表达式y=2.75+x/2 的值是 C .A) 5.5 B) 5 C) 3 D) 4.031、以下程序的输出结果是 D .#include<stdio.h>void main(){int a=12, b=12; C)必须为字母或下划线D)可以是字母,数字或下划线中的任意一种39、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y 值的数据类型是 D .A) float B) char C) int D) double40、一个C 语言的执行是从 A .A)本程序的主函数开始,到本程序的主函数结束B)本程序的第一个函数开始,到本程序的最后一个函数结束C)本程序的主函数开始,到本程序的最后一个函数结束D)本程序的第一个函数开始,到本程序的主函数结束printf("%d,%d\n",--a,++b); 41、设a 为整型变量,不能正确表达数学关系10<a<15 } 的C 语言表达式是 A .A) 10,10 B) 12,12 C) 11,10 D) 11,13 A) 10<a<15 B) a==11||a==12||a==13||a==14C) a>10&&a<15 D) !(a<=10)&&!(a>=15)32、设有以下语句:int x=10;x+=3+x%(3),则x 的值是. AA) 14 B) 15 C) 11 D) 1233、若d 为double 型变量,则表达式d=1,d+5,d++的值是 D .A) 1 B) 6.0 C) 2.0 D) 1.034、表达式5!=3 的值是 D .A) T B) 非零值C) 0 D) 135、若有定义int a=12,n=5,则表达式a%=(n%2)运算后a, 的值 A .A) 0 B) 1 C) 12 D) 636、若有定义int x=3,y=2 和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b 的值是 D .A) 0 B) 2 C) 1.5 D) 137、在C 语言中,以下叙述不正确的是 A .A)在C 程序中,无论是整数还是实数,都能被准确无误的表示B)在C 程序中,变量名代表存储器中的一个位置C)静态变量的生存期与整个程序的生存期相同D)C 语言中变量必须先定义后引用38、C 语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符 C .A)必须为字母B)必须为下划线42、下列程序执行后的输出结果是 C .#include <stdio.h>void main( ){ int a=5,b=60,c;if (a<b){c=a*b;printf("%d*%d=%d\n",b,a,c);}else{c=b/a;printf("%d/%d=%d\n",b,a,c);}}A) 60/5=12 B) 300 C) 60*5=300 D) 1243、如果c 为字符型变量,判断c 是否为空格不能使用 A .(假设已知空格ASCII 码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')44、运行下面程序时,若从键盘输入"3,5<CR>",则程序的输出结果是 D .#include <stdio.h>void main( ){int x,y;scanf("%d,%d",&x,&y);if (x==y)printf("x==y");else if (x>y)printf("x>y");elseprintf("x<y");}A) 3<5 B) 5>3 C) x>y D) x<y45、运行下面程序时,若从键盘输入数据为"6,5,7<CR>",则输出结果是 C .#include <stdio.h>void main( ){ int a,b,c;scanf("%d,%d,%d",&a,&b,&c);if (a>b)if (a>c)printf("%d\n",a);elseprintf("%d\n",c); A) 0.000000 B) 0.500000C) 1.000000 D) 0.25000048、执行下面程序后,运行结果是 A .#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=1elseif (b>c)printf("%d\n",b);else 49、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是 A .#include <stdio.h>void main( )printf("%d\n",c); { int x,y,z;} scanf("%d,%d,%d",&x,&y,&z);A) 5 B) 6 C) 7 D) 不定值if (x<y)46、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是 A .#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D)不确定的值if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f') 50、运行下面程序时,从键盘输入字母H,则输出结果是 C .#include <stdio.h>k=cp-'a'+10; void main( )else k=cp-'A'+10; { char ch;printf("%d\n",k); ch=getchar( );} switch(ch)A) 2 B) 4 C) 1 D) 10 { case 'H':printf("Hello!\n");47、运行下面程序时,从键盘输入"2.0<CR>",则输出结果是 B .#include <stdio.h>void main( ){ float a,b;scanf("%f",&a);if (a<0.0) b=0.0;else if ((a<0.5) && (a!=2.0)) b=1.0/(a+2.0);else if (a<10.0) b=1.0/2;else b=10.0;printf("%f\n",b);}case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!Bye_Bye!51、执行下列程序段后的输出结果是 A .int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x); }A) 3 B) 2 C) 1 D) 4 A) 3,0 B) 0,0 C) 0,1 D) 3,152、设ch 是char 型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch 的值是 B .A) Z B) a C) z D) A53、下面程序的输出结果是 C .#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 054、运行下面程序时,若从键盘输入"5 <CR>",则程序的输出结果是 B .#include <stdio.h>void main( ){ int a ;scanf("%d",&a);if (a++>5)printf("%d\n",a);else printf("%d\n",a--) ;}A) 7 B) 6 C) 5 D) 4 57、假定等级和分数有以下对应关系:等级:A 分数:85~100等级:B 分数:60~84等级:C 分数:60 以下对于等级grade 输出相应的分数区间,能够完成该功能的程序段是 D .A)switch (grade){case 'A':printf("85--100\n");case 'B':printf("60--84\n");case 'C':printf("60 以下\n");default:printf("等级错误!\n");}B)switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");case 'C':printf("60 以下\n");default:printf(" 等级错误!\n");}C)switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");break;case 'C':printf("60 以下\n");default:printf("等级错误!\n");55、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是 B .#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 20}D)switch (grade){case 'A':printf("85--100\n");break;case 'B':printf("60--84\n");break;case 'C':printf("60 以下\n");break;default:printf("等级错误!\n");}58、能够完成如下函数计算的程序段是 B .┌ -1 x<0y= ┤0 x=0└ 1 x>056、下列程序的执行结果是 D . A) y=1; B) if (x>=0)#include <stdio.h> if(x!=0) if(x>0) y=1; void main( ) if(x>0) y=1; else y=0; { int x=0,y=1,z=0; else y=0; else y=-1;if (x=z=y) C) y=0; D) y=-1;x=3; if (x>=0) if (x>0) y=1;printf("%d,%d\n",x,z); if (x>0) y=1; else y=0;else y=-1;59、有如下程序#include <stdio.h>void main( ){ float x=5.0,y;if(x<0.0) y=0.0;else if (x<10.0) y=1.0/x;else y=1.0;printf("%f\n",y);}该程序的输出结果是 C .A) 0.000000 B) 0.50000C) 0.200000 D) 1.00000060、以下程序的执行结果是 B .#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird61、以下程序的执行结果是 A .#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0; b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);} A) d=20 B) d=10 C) d=15 D) 2562、有如下程序:#include <stdio.h>void main( ){ int a=2,b=-1,c=2;if (a<b)if (b<0) c=0;else c++;printf("%d\n",c);}该程序的输出结果是 C .A) 0 B) 1 C) 2 D) 363、下列程序执行后的输出结果是 B .#include <stdio.h>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D)出错信息64、有如下程序#include <stdio.h>void 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) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=265、下面程序的输出结果是 C .#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 066、假定w、x、y、z、m 均为int 型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m 的值是 D .A) 4 B) 3 C) 2 D) 167、以下程序的输出结果是 D .main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 168、若执行下面的程序从键盘上输入9,则输出结果是. B#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 869、以下程序输出结果是 D .#include <stdio.h>void main( ){ int m=4;if (++m>5) printf("%d\n",m--);else printf("%d\n",--m);}A) 7 B) 6 C) 5 D) 4x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D)不确定的值72、有以下程序#include <stdio.h>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是 A .A) 2,1 B) 3,2 C) 4,3 D) 2,-173、运行下面程序时,若从键盘输入数据为"123",则输出结果是 C .#include "stdio.h"void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}70、若执行下面的程序从键盘上输入5,则输出结果是. #include <stdio.h>void main( )}A) 123 B) 1,2,3 C) 321 D) 3,2,1{int x;scanf("%d",&x); 74、执行下列程序后的输出结果是 D . #include <stdio.h>if (x++>5) printf("%d\n",x); void main( )else printf("%d\n",x--); { int k=4,a=3,b=2,c=1;} printf("%d\n",k<a?k:c<b?c:a);A) 7 B) 6 C) 5 D) 4 }71、以下程序段运行结果是 A . int x=1,y=1,z=-1; A) 4 B) 3 C) 2 D) 175、以下条件表达式中能完全等价于条件表达式x 的是 B . t=++x || ++y && ++z;A) (x==0) B) (x!=0) C) (x==1) D) (x!=1) A) 不定值B) 4 C) 1 D) 076、若运行下面程序时,给变量a 输入15,则输出结果是 A .#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ; 81、以下程序段 C .x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误}A) 5 B) 25 C) 15 D) 1077、运行下面程序后,输出是 D .#include <stdio.h>void main( ){ int k=-3;if (k<=0) printf("****\n");else printf("####\n") 82、对下面程序段描述正确的是 B .int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段循环无数次}A) ####B) ****C) ####****D) 有语法错误不能通过编译78、执行下面程序的输出结果是 C .#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A)有语法错误不能编译B)能通过编译,但不能通过连接C)输出****D)输出####79、为了避免嵌套的if-else 语句的二义性,C 语言规定else 总是与 C 组成配对关系.A)缩排位置相同的ifB)在其之前未配对的ifC)在其之前尚未配对的最近的ifD)同一行上的if80、设x 、y 、z 、t 均为int 型变量,则执行以下语句后,t 的值为 C .x=y=z=1; 83、下面程序段的输出结果是 C .x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息84、下面程序的运行结果是 B .#include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,985、下面程序段的运行结果是 B .int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D)错误信息86、下面程序段的运行结果是 D .int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8 D)8,20} while(a<9); printf("%d\n",b); }87、下面程序的运行结果是 B . A) 34 B) 24 C) 26 D) 25#include<stdio.h> 91、下面程序段的运行结果是 D .void main() for(i=1;i<=5;){ int s=0,i=1; printf("%d",i);while (s<=10) i++;{ s=s+i*i; A) 12345 B) 1234 C) 15 D) 无限循环i++;} 92、下面程序的输出结果是 B .printf("%d",--i); #include<stdio.h>} void main( )A) 4 B) 3 C) 5 D) 6 { int n=4;88、函数pi 的功能是根据以下近似公式求π值:while (n--) printf("%d ",n--); }C(π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n)请填空,完成求π的功能。
广东计算机二级c试题及答案

广东计算机二级c试题及答案一、选择题(每题2分,共40分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A3. 下列哪个选项是合法的C语言常量?A. '123'B. "123"C. 123D. 0x1A答案:D4. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B5. C语言中,以下哪个关键字用于声明一个函数?A. structB. voidC. intD. return答案:C6. 在C语言中,以下哪个选项是正确的一维数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. All of the above答案:D7. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. All of the above答案:D8. 在C语言中,以下哪个关键字用于声明一个指针?A. intB. charC. floatD. *答案:D9. 在C语言中,以下哪个函数用于打开一个文件?A. fopenB. fcloseC. freadD. fwrite答案:A10. C语言中,以下哪个关键字用于定义一个宏?A. defineB. macroC. #defineD. #include答案:C11. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[2][3];B. int array[][3];C. int array[2][];D. int array[][2];答案:A12. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A13. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. unionC. structD. typedef答案:A14. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. All of the above答案:D15. 在C语言中,以下哪个函数用于关闭一个文件?A. fopenB. fcloseC. freadD. fwrite答案:B16. C语言中,以下哪个关键字用于声明一个联合体?A. structB. unionC. enumD. typedef答案:B17. 在C语言中,以下哪个选项是正确的函数声明?A. int function();B. void function();C. int function(int);D. All of the above答案:D18. C语言中,以下哪个关键字用于声明一个外部变量?A. externB. staticC. constD. volatile答案:A19. 下列哪个选项是C语言中的条件运算符?A. ?B. :C. &&D. ||答案:A20. 在C语言中,以下哪个函数用于计算两个整数的差?A. absB. powC. diffD. subtract答案:A二、填空题(每题2分,共20分)1. 在C语言中,____关键字用于定义一个函数的返回类型。
C语言习题集Word版

C语言习题集Word版1、将一元二次方程的求根公式(-b+判断式的平方根)/(2a)转换为C语言的表达式,转换以后的语句写在函数fun的花括号,fun函数的其他语句请不要修改,main函数供你调试程序使用也可以任意修改。
#include#includedouble fun(double a,double b,double c){double x1=0.0;//--ksstart(注释不能删除)—//考生代码从此开始编写x1 = (-b+sqrt(b*b-4*a*c))/(2*a);//--ksend---return x1;}main(){//求一个根double a=0.0,b=0.0,c=0.0,x1=0.0;int n=0;printf("The a,b,c:");scanf("%lf %lf %lf",&a,&b,&c);x1=fun(a,b,c);printf("The x1=%lf:\n",x1);}2、函数fun的功能是: 将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是: 将a 数的十位和个位数依次放在c数的个位和百位上, b数的十位和个位数依次放在c数的十位和千位上。
例如, 当a=45, b=12, 调用该函数后, c=2514。
注意: 部分源程序存在文件PROG1.C中。
数据文件bc.in中的数据不得修改。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include#includelong fun(int a, int b){long c=0;//--ksstart(注释不能删除)—//考生代码从此开始编写int c1,c2,c3,c4;c1 = b%10;c2 = a%10;c3 = b/10;c4 = a/10;c = c1*1000+c2*100+c3*10+c4;//--ksend---return c;}main(){ int a,b; long c;printf("Input a, b:");scanf("%d%d", &a, &b);c=fun(a, b);printf("The result is: %ld\n", c);}3、将公式ln(|cos(x)|e sin(x))转换为C语言的表达式,转换以后的语句写在函数fun的花括号,fun函数的其他语句请不要修改,main函数供你调试程序使用也可以任意修改。
2023年广东省广州市全国计算机等级考试C语言程序设计测试卷(含答案)

2023年广东省广州市全国计算机等级考试C语言程序设计测试卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 阅读下面程序,则执行后的输出结果是【】。
#include "stdio.h"main(){ int x,y,z;x=1;y=2;z=3;if(x>y)if(x>z)printf("%d",x);else printf("%d",y);printf("%d\n",z);}2. 对软件是否能达到用户所期望的要求的测试称为【】。
3. 面向对象的模型中,最基本的概念是对象和______。
4. 以下程序的输出结果是【】。
main(){ int y=9;for(;y>0;y--)if(y%3==0){printf("%d",--y);continue;}}5. 下面程序的运行结果是【】。
#include<stdio.h>#define SIZE 12main(){ char s[SIZE]; int I;for(I=0;I<SIZE;I++) s[I]=′A′+I+321; sub(s,7,SIZE-1);for(I=0;I<SIZE;I++) printf("%c",s[I]);printf("\n");}sub(char*a,int t1,int t2){ char ch;while (t1<t2){ ch=*(a+t1);*(a+t1)=*(a+t2);*(a+t2)=ch;t1++;t2--; } }6. 当运行以下程序时,从键盘输入abcdabcdef<CR>cde<CR>(<CR>表示回车),则下面程序的运行结果是【】。
#include<stdio.h>main(){ int a;char s[80],t[80];gets(s);gets(t);a=fun(s,t);printf("a=%d\n",a);}fun(char*p,char*q){ int i;char*p1=p;char*q1;for(i=0;*p!='\0';p++,i++){ p=p1+i;if(*p!=*q)continue;for(q1=q+1,p=p+1;*p!='\0'&&*q1!='\0';q1++,p++)if(*p!=*q1) break;if(*q1=='\0') return i;}return(-1);}7. 下面程序的运行结果是( )。
C语言题目MicrosoftWord文档共15页word资料

C语言题目MicrosoftWord文档共15页word资料统考复习题目1. 编写程序,用矩形法求一元函数f(x)=x^3+2x^2-12x-6(其中^示幂运算),在区间[3.5,5]上的积分近似值S,保留2位小数(小区间数n=15,此参数不能改动,否则影响答案)。
2. 编写程序,用矩形法求一元函数f(x)=x^3+2x^2-12x-6(其中^示幂运算),在区间[3.5,5]上的积分近似值S,保留2位小数(小区间数n=25,此参数不能改动,否则影响答案)3. 编写程序,用矩形法求一元函数f(x)=7x^3+2x^2-12x-16(其中^表示幂运算),在区间[5,7]上的积分近似值S,保留2位小数(小区间数n=15,此参数不能改动,否则影响答案)4. 编写程序,用矩形法求一元函数f(x)=3x^3+2x^2+x+1(其中^表示幂运算),在区间[1,3]上的积分近似值S,保留3位小数(小区间数n=15,此参数不能改动,否则影响答案)5. 编写程序,用牛顿切线法求方程f(x)=x+㏑x-1.56=0的近似实根r,迭代初值为2,精确到0.0001。
(注意:㏑x是以e为底的自然对数)(提示:牛顿切线法的计算公式为x=x-f(x)/f′(x)).6. 编写程序,用牛顿切线法求方程f(x)=x^3+2x^2-14=0(其中^表示幂运算),在区间(0,5)上的近似实根r,迭代初值自选,精确到0.0001。
{提示:牛顿切线法的计算公式为x=x-f(x)/ f’(x)}.7. 要求:编写程序,用梯形法求一元函数f(x)= ㏑(x+1)+ x/3,在区间[1,4]上的积分近似值S,保留3位小数(小区间数n=20,此参数不能改动)。
(注意:㏑x是以e为底的自然对数)在运行程序时,使用文本框或InputBox函数输入n值,并用适当的方法输出运算结果。
8. 编写程序,用梯形法求一元函数f(x)=7x^3+2x^2-12x-16(其中^表示幂运算),在区间[3,5]上的积分近似植S,保留2位小数(小区间数n=25,此参数不能改动,否则影响答案)9. 编写程序,用普通迭代法求方程f(x)= x+㏒x-3.18=0的近似实根r,迭代初值为2.5,要求结果保留4位小数。
2022年广东省中山市全国计算机等级考试C语言程序设计测试卷(含答案)

2022年广东省中山市全国计算机等级考试C语言程序设计测试卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1. 已知int t=0;while(t=1){…} 则以下叙述正确的是( )。
A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式不合法D.以上说法都不对2.用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为()。
A.j=r[j].nextB.j=j+1C.j=j->nextD.j=r[j]->next3.有以下程序段#include <stdio.h>void fun(char*fname,char*st){ FILE * myf;int i;myf=fopen(fname,"w");for(i=0;i<strlen(st);i++)fputc(st[i],myf);fclose(myf);}main(){ fun("test.t","new world");fun("test.t","hello,");}程序执行后,文件test.t中的内容是A.A.hello,B.new worldhello,C.new worldD.hello,rld4. 语句int(*ptr)()的含义是( )。
A.ptr是一个返回值是int的函数B.ptr是指向int型数据的指针变量C.ptr是指向函数的指针,该函数返回一个int型数据D.ptr是一个函数名,该函数的返回值是指向血型数据的指针5.采用表结构来表示数据和数据间联系的模型是()。
A.层次模型B.概念模型C.网状模型D.关系模型6.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言编程题目1.025 编写一个C程序,用函数printf(char *s)输出以下3行信息:********************* Very Good! *********************注意:(1)要求精确到每个字符、空格、字母及其大小写。
(2)可多次调用printf(char *s),每次仅一个字符串参数。
**********/void print1(){printf("********************\n");}void print2(){printf("* Very Good! *\n");}void main(){ print1();print2();print1();}1.055 编写一个程序,输入a、b、c三个值,输出其中最大值。
要求不改变下列给定的程序框架内容,填入合适语句,使其成为满足题目要求的正确程序。
**********/int max_a(int a,int b,int c){int max=a;if(max<b)max=b;if(max<c)max=c;return max;}int max_b(int a,int b,int c){int max=b;if(max<a)max=a;if(max<c)max=c;return max;}int max_c(int a,int b,int c){int max=c;if(max<a)max=a;if(max<b)max=b;return max;}void main(){int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c);//max=a>b?a:b;//max=max>c?max:c;//max=a;//if(max<b) max=b;//if(max<c) max=c;printf("max(%d,%d,%d)=%d\n",a,b,c,max _a(a,b,c));printf("max(%d,%d,%d)=%d\n",a,b,c,max _b(a,b,c));printf("max(%d,%d,%d)=%d\n",a,b,c,max _c(a,b,c));}6.022 n是系统给定的外部变量,编写程序求1到n间的自然数之和。
请定义局部变量s存放求和的结果,并用下列语句输出结果printf("1+2+...+n=%d\n",s);**********/void main(){int s;/* 请添加相关说明和语句 */int i;for(i=1;i<=n;i++)s+=i;printf("1+2+...+n=%d\n",s); /* 注意:不要修改此输出语句 */}6.026 n和s是系统给定的外部整型变量(不需要自行定义),编写程序求1到n之间的奇数之和,并将结果存放到s。
**********/void main(){int i;for(i=1;i<=n;i++)if(i%2!=0)s+=i;}6.040 m,n和s是系统定义的外部整型变量(不需要自行定义),编写程序,根据m的值求满足1+2+...+n>=m 的最小n,并将1+2+...+n的结果存放到s。
例如,若m=50,则n=10,s=55。
**********/void main(){int i;for(i=1;s<m;i++){ s+=i;n=i;}}/**********6.051 n和s是系统给定的外部整型变量(不需要自行定义),编写程序求1-1/2+1/3-1/4+...1/n,并将结果存放到s。
**********/void main(){//int sign=1;//float deno=2.0,term;//s=1.0;//while(deno<=n)//{//sign=-sign;//term=sign/deno;//s=s+term;//deno=deno+1;//}//printf("%f\n",s);int i=1,flag=1;s=0.0;while(i<=n){ s+=1.0/i++*flag;flag*=-1;}printf("s=%f\n",s);}int min(int x, int y, int z)/* 返回3个整数x,y和z中最小的数 */{int t;t=x<y?x:y;return(t<z?t:z);}/* 8.020 编写函数,求用1元、5元和10元三种纸币支付n元钱共有多少种支付方法?例如,16元可有6种支付方法:方法 1 2 3 4 5 610元 0 0 0 0 1 15元 0 1 2 3 0 11元 16 11 6 1 6 1*/int change(int n){ int i,j,k;int sum=0;printf("\t1元\t5元\t10元\n");for(i=0;i<=n;i++)for(j=0;j<=n/5;j++)for(k=0;k<=n/10;k++)if(n==(i+5*j+10*k)){ sum=sum+1;printf("%-d",sum);printf("\t%-d\t%-d\t%-d\n",i,j,k);}printf("\n");return(sum);}/* 8.030 先编写一个判断素数的函数。
再编写一个函数将一个偶数表示为两个素数之和,并返回其中较小的素数。
注:素数指只能被1和自身整除的正整数。
规定0,1不是素数。
*/int prime(int n)/* 判断素数,如果是素数返回1,不是素数则返回0 */{ int t;if(n==1)return 0;for(t=2;t<=(n/2);t++)if(n%t==0)return 0;return 1;}int f(int i)/* 将偶数i表示为两个素数之和,返回其中较小的素数*/{ int n;for( n=3; n<=i; n++)if(prime(i-n) && prime(n))return n;}/* 8.050 编写函数,将字符串中ASCII码最小的字符放在第一个字符位置,其余字符依次往后移。
*/void func(char *str)/* 将字符串str中ASCII码最小的字符放在第一个 *//* 字符位置,其余字符依次往后移。
*/{ int i,j,min;for(min=0,i=1;str[i]!='\0';i++){if(str[min]>str[i])min=i;}j=str[min];for(i=min-1;i>=0;i--)str[i+1]=str[i];str[0]=j;}/* 8.060 编写函数将一个nxn的二维数组按“次对角线”翻转。
例如:翻转前的数组翻转后的数组 1 2 3 9 6 3 4 5 6 ---> 8 5 27 8 9 7 4 1*/void invert(char a[N][N]){ int i, j,b[20][20];for(i=0;i<N;i++)for(j=0;j<N;j++)b[i][j]=a[N-1-j][N-1-i];for(i=0;i<N;i++)for(j=0;j<N;j++)a[i][j]=b[i][j];return;}/* 8.064 编写函数将一个NxN的二维数组“水平”翻转。
例如:翻转前的数组翻转后的数组1 2 3 7 8 94 5 6 ---> 4 5 67 8 9 1 2 3*/void invertH(char a[N][N]){ int i,j;char k;for (i=0;i*2<N;i++)for (j=0;j<N;j++){k=a[i][j];a[i][j]=a[N-i-1][j];a[N-i-1][j]=k;}}/* 8.067 编写函数将一个NxN的二维数组的周边元素“顺时针”轮转1位。
例如:轮转前的数组轮转后的数组1 2 3 4 1 24 5 6 ---> 7 5 37 8 9 8 9 6*/void turningClockwise(char a[N][N]) { int i,j,row=0,column=0;int tmp,t;int flag=1;printf("原来的数组:\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%5d",a[i][j]);printf("\n");}tmp = a[0][0];a[0][0] = a[1][0];column = 1;while(!(row==0&&column==0)){t = a[row][column];a[row][column] = tmp;tmp = t;if(flag==1){if(column!=N-1)column ++;else{flag++;row++;}}else if(flag==2){if(row!=N-1)row++;else{flag++;column--;}}else if(flag==3){if(column!=0)column --;else{flag++;;row--;}}else if(flag==4){if(row!=0)row--;}}printf("\n顺时针旋转后的数组:\n"); for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%5d",a[i][j]);printf("\n");}}/* 8.072 编写函数将一个NxN的二维数组a 的元素按行向右轮转1位。
例如:轮转前的数组轮转后的数组1 2 3 3 1 24 5 6 ---> 6 4 57 8 9 9 7 8*/void turningRight(char a[N][N]){ int row, col=N-3, tmp;printf("原来的数组:\n");for(row=0; row<N; row++){ for(col=0; col<N; col++)printf("%5d",a[row][col]);printf("\n");}for (row=0; row<N; row++){ tmp = a[row][N-1];for (col=N-1; col; col--){a[row][col] = a[row][col-1]; }a[row][col] = tmp;}printf("右移一位后的的数组:\n");for(row=0; row<N; row++){ for(col=0; col<N; col++)printf("%5d",a[row][col]);printf("\n");}printf("\n");}void func(char s[], char t[], int n) /* 数组s的前n个元素存放给定的字符序列,数组t的前n个元素存放s的逆序列。