广工C语言编程题目
- 格式:docx
- 大小:15.78 KB
- 文档页数:22
广东计算机二级c 试题及答案一、选择题1. 下列哪个选项可以正确表示字符变量ch?A. char ch = 'A';B. char ch = "A";C. char ch = "65";D. char ch = 65;答案:A2. 下列哪个选项可以正确表示整型变量num?A. int num = 3.14;B. int num = "32";C. int num = 'A';D. int num = 32;答案:D3. 下列哪个选项可以正确表示布尔型变量flag?A. boolean flag = True;B. boolean flag = "true";C. boolean flag = 'T';D. boolean flag = true;答案:D4. 下列哪个选项可以实现两个整型变量a和b的交换?A. a = b; b = a;B. int temp = a; a = b; b = temp;C. a += b; b = a - b; a -= b;D. a = a + b; b = a - b; a = a - b;答案:B5. 下列哪个选项可以正确表示字符串变量str?A. String str = "Hello";B. String str = 'Hello';C. String str = Hello;D. String str = "Hello";答案:A二、填空题1. 编写代码,输出“广东计算机二级C考试”。
答案:System.out.println("广东计算机二级C考试");2. 编写代码,声明一个整型变量num,并赋予初始值为10。
答案:int num = 10;3. 编写代码,计算两个整型变量a和b的和,并将结果存储在变量sum中。
2021年广东省潮州市全国计算机等级考试C语言程序设计测试卷一(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.有以下程序:#include<stdi0.h>main(){int a=1,b=2;for(;a<8;a++){b+=a;a+=2;)printf("%d,%d\n",a,b);}程序运行后的输出结果是()。
A.9,18 B.8,11 C.7,11 D.10,142.3. 若有定义int a=5, b=7;,则表达式a%=(b%2)运算后,a的值为( )。
A.0B.1C.11D.34. 下面程序输出的结果是main() { int x;x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3+4%6/5;printf("%d",x);x=(7+6)%5/2;printf("%d",x);}A.11 1 -3 1B.11 -3 2 1C.12 -3 2 1D.11 1 2 15.给定数列(541,132,984,746,518,181,946,314,205,827)按照从小到大的顺序排列,采用快速排序(以中间元素518为基准)的第一趟扫描结果是()A.(541,132,827,746,518,181,946,314,205,984)B.(205,132,314,181,518,746,946,984,541,827)C.(132,541,746,984,181,518,314,946,205,827)D.(132,541,746,518,181,946,314,205,827,984)6. 以下选项中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'7. 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语言中,用于定义一个字符型数组的语法是______。
2022-2023学年广东省惠州市全国计算机等级考试C语言程序设计测试卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.已知字符A的ASCⅡ代码值是65,字符变量c1的直是A,c2的值是D。
执行语句printf("%d,%d",c1,c2-2);后,输出结果是( )。
A.A,BB.A,68C.65,66D.65,682.如有inta=11;则表达式(a/1)的值是()。
A.0B.3C.4D.113. 以下程序的输出结果是______。
A.54321B.12345C.12345D.543210main(){int w=5;fun(w);printf("\n");}fun (int k){if(k>0)fun(k-1);printf("%d"",k);}4.5. 下列程序的输出结果是( )。
main() { char a[7]="a0\0a0\0";int i,j;i=sizeof(a);j=strlen(a);printf("%d %d\n",i,j);}A.2 2B.7 6C.7 2D.6 26.7.有以下程序:#include <stdio.h>void f1(char *a, char b ) {char c; c=*a; *a=b; b=c;}void f2(char a, char b ) {char c; c=a; a=b; b=c;}void f3(char *a, char *b ) {char c; c=*a; *a=* b; *b=c;}main(){char t1, t2 ;t1=‘A’; t2=‘B’;f3(&t1, &t2); putchar(t1); putchar(t2);t1=‘A’; t2=‘B’; f2(t1, t2); putchar(t1); putchar(t2);t1=‘A’; t2=‘B’; f1(&t1, t2); putchar(t1); putchar(t2);printf(“\n”);}程序运行后的输出结果是()。
2023年广东省云浮市全国计算机等级考试C语言程序设计预测试题(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。
例如,输入整数5时(注意:n不得大于10),程序运行结果如下:ABCDEFGHIJKLMNO请填空完成该程序。
main(){ int i,j,n; char ch='A';scanf("%d",&n);if(n<11){ for(i=1;i<=n;i++){ for(j=1;j<=n-i+1;j++){ printf("%2c",ch);【】;}【】;}}else printf("n is too large!\n")printf("\n"0);}2.设有定义“stmct{int a;float b;char c}abc,*p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abc______。
3. 以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf; long f1;myf=【】("test,t","rb");fseek(myf,(),SEEK_END;f1+ftell(myf);fclose(myf);printf("%1d\n",f1);4. 若有以下程序:main(){ char a;a='H'-'A'+'0';printf("%c\n",a);}执行后的输出结果是【】。
2022年广东省潮州市全国计算机等级考试C语言程序设计模拟考试(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.有以下程序:#include<stdio.h>main(){unsigned char a=8,C;C=a>>3:printf("%d\n",c);}程序运行后的输出结果是()。
A.32 B.16 C.1 D.02.下列叙述中正确的是( )。
A.一个逻辑数据结构只能有一种存储结构B.逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存诸结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存诸结构影响数据处理的效率3.下列叙述中正确的是A.C语言中既有逻辑类型也有集合类型B.C语言中没有逻辑类型但有集合类型C.C语言中有逻辑类型但没有集合类型D.C语言中既没有逻辑类型也没有集合类型4.以下关于long、int和short类型数据占用内存大小的叙述中正确的是( ),A.均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定5.栈的特点是B,队列的特点是()。
A.先进先出B.先进后出6. 有下列程序段:int k=0,a=1,b=2,c=3;k=a<b?b:a;k=k>c?c=k;执行该程序段后,k的值是( )。
A.3B.2C.1D.07.程序流程图中带有箭头的线段表示的是()。
A.图元关系B.数据流C.控制流D.调用关系8.在下列几种排序方法中,要求内存量最大的是______。
A.插入排序B.选择排序C.快速排序D.归并排序9.10.设有以下说明,则不正确的叙述是()。
A.A.arr所占的内存长度等于成员c的长度B.arr的地址和它的各成员的地址都是同一地址C.arr可以作为函数参数D.不能在定义arr时对它初始化11.12. 判断字符串s1是否大于字符串s2,应该使用( )。
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. 下面程序的运行结果是( )。
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之间的关系是( )。
2021年广东省韶关市全国计算机等级考试C语言程序设计模拟考试(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、2.填空题(10题)1. 下列程序的输出结果是______。
#include<stdio.h>fun(){ static int a=0;a+=3;printf("%d",A) ;}main(){ int cc;for(cc=1;cc<5;cc++)fun();printf("\n");}2. 在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,【】负责数据的模式定义与数据的物理存取构建。
3. 有以下定义语句,则sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
struct date{ int day;int mouth;int year,union { int share1;float share2;}share;}a;4. 函数compare的功能是比较两个字符串是否相等,若相等则函数返回1,否则返回o,请填空。
compare(char s[],char t[]){int i=0while(s[i]==t[i]&&【】)i++;return(【】?1:0);}5. 数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
6. 以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。
例如,输入字符串:abc123edf456gh,执行程序后输出:123456。
请填空。
#include <stdio.h>#include <ctype.h>main(){ char s[80],d[80]; int i,j;gets(s);for(i=j=0;s[i]! ='\0';i++)if(【】) {d[j]=s[i]; j++;}d[j]='\0';puts(d);}7. 若输入字符串:abcde<回车>,则以下while循环体将执行【】次。
2021年广东省揭阳市全国计算机等级考试C语言程序设计真题二卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1. 下列程序的输出结果是( )。
#include<stdio.h>void main() { int a=0,b=1,c=2; if(++a>0‖++b>0) ++c; printf("%d,%d,%d",a,b,c); }A.0,1,2B.1,2,3C.1,1,3D.1,2,22.快速排序在已经有序的情况下效率最差,复杂度为()A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)3.能正确表示“当x的取值在[1,10]和[100,110]范围内为真,否则为假”的表达式是( )。
A.(x>=1)&&(x<=10)& &(x>=100)&&(x<=110)B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)4. 下列二维数组初始化语句中,不正确的是( )。
A.intb[][2]={1,2,3,4,5,6,7};B.intb[3][5]={0,0,0};C.intb[][4]={{1,2},{3,4,5},{6}};D.intb[3][2]={(1,2),(3,4),(5,6)};5. 若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是( )。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca6.下面结构中最适于表示稀疏无向图的是()。
广工C语言编程题目 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】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 34 5 6 ---> 85 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的逆序列。