试卷代码.c02
- 格式:doc
- 大小:35.00 KB
- 文档页数:2
c 二级考试试题和答案及分析**C 二级考试试题和答案及分析**一、选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的整型常量表示?A. 0x12B. 1.5e2C. 0123D. 1.23**答案:A****分析:**在C语言中,0x12是正确的十六进制表示,1.5e2是浮点数表示,0123是八进制表示,而1.23是浮点数表示。
2. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable-2**答案:B, C****分析:**在C语言中,标识符可以以字母、下划线开头,但不能以数字开头。
因此,2variable和variable-2都是不合法的,而variable2和_variable是合法的。
3. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello" "World!"D. 'Hello' 'World!'**答案:A, C****分析:**在C语言中,字符串字面量需要用双引号括起来,因此A选项是正确的。
C选项中,两个字符串字面量之间没有加号,它们会被编译器自动连接起来,也是正确的。
4. 下列哪个选项是C语言中的合法数组声明?A. int array[5];B. int array[];C. int array[5] = {1, 2, 3, 4, 5};D. int array = {1, 2, 3, 4, 5};**答案:A, B, C****分析:**在C语言中,A选项和C选项都是合法的数组声明。
B选项声明了一个未指定大小的数组,这也是合法的。
D选项是错误的,因为它试图声明一个整型变量而不是数组。
5. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int x, int y);B. int add();C. int add(int, int);D. int add(int x, y);**答案:A, C****分析:**在C语言中,函数声明需要指定参数的类型和数量。
1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。
例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。
第一个for循环用来计算score数组中分数的总和,然后用aver/=m求出平均值,第二个循环用来找出小于平均分的元素,并放到数组below中,这里要注意j的递增方式。
#include <string.h>#include <conio.h>#include <stdio.h>int fun(int score[],int m,int below[]){ int i,j=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver)below[j++]=score[i];return j;}main( ){ int i,n,below[9];int score[9]={10,20,30,40,50,60,70,80,90};n=fun(score,9,below);printf("\nbelow the average score are :");for(i=0;i<n;i++) printf("%4d",below[i]);}2.请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
该题关键就是如何表示能被7或11整除,但不能同时被7和11整除。
用(i%7==0) || (i%11==0)来表示能被7或11整除,用!((i%7==0) && (i%11==0))来表示不能同时被7和11整除。
二级C语言-230(总分100, 做题时间90分钟)一、程序填空题1.请补充函数proc(),该函数的功能是将字符串str中的大写字母都改为对应的小写字母,其他字符不变。
例如,若输入“How Are You?”,则输出“how are you?”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:#include<stdio.h>#include<string.h>#include<conio.h>char*proc(char str[]){int i;for(i=0;str[i];i++){if((str[i]>="A")&&(______))______;}return(______);void main(){char str[81];printf("\nPlease enter a string:");gets(str);printf("\nThe result string is:\n%s",proc(str));}SSS_FILL分值: 30str[i]<="Z" str[i]+=32 str[解析] 要将字符串中所有的大写字母改为对应的小写字母,首先应该找出字符串中所有的小写字母。
判断一个字符是否是大写字母,只要看其是否在A和Z之间,因此第一处填“str[i]<="Z"”;每找到一个大写字母,就将其改为小写字母。
大写字母与小写字母之间的关系为ASCII相差32,因此第二处填“str[i]+=32”;得到的新的字符串放在s1中,要将其返回给主函数,因此第三处填“str”。
二、程序改错题1.下列给定程序中,函数proc()的功能是逐个比较str1,str2两个字符串对应位置中的字符,把比ASCII值大或相等的字符依次存放到str数组中,形成一个新的字符串。
课程名称计算机基础及C语言(Ⅱ) 开课学院计算机学院使用班级考试日期.江苏大学试题第2页江苏大学试题第3页江苏大学试题第4页21.该程序运行后,输出x的值是__________,y的值是_____D_____.int x=1;main(){int y,k;y=f(3);printf(”%d\n%d”,x,y);}int f(int x){if(x==3) {int x=2;return x;}else return x;}A。
0,1 B. 1,1 C. 2,1 D。
1,222.当程序读写数据文件时,需要有声明语句“FILE *fp;”,在该声明语句之前必须包含头文件______B______.A。
string.hB. stdio。
hC. math。
hD。
ctype。
h23.在文件中,以符号常量EOF作为文本文件的结束标记,EOF代表的值是_____B____。
A。
—2B. -1C。
0D.124.若有声明“double a[2][3]={1,2,3,4,5,6};”,则下列表达式中不能正确引用a[1][1]值的是__C___。
A. *(a[0]+4)B. *(a[1]+1)C. *(*(a+3)+1)D。
*(*a+4)25.有以下程序段typedef struct NODE{int num;struct NODE *next;}OLD;则以下叙述中正确的是_____D____.A。
以上的说明形式非法B。
NODE是一个结构体类型C。
OLD是一个结构体类型D。
OLD是一个结构体变量26.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是_____D_____。
A。
k%2 B。
k%2==1 C. (k%2)!=0 D。
!k%2==127.若有定义:int x=0, *p=&x;,则语句printf("%d\n”,*p);的输出结果是A.随机值B。
0C.x的地址D.p的地址28.以下能正确定义且赋初值的语句是___B______。
国二计算机c语言考试题型和答案# 国二计算机C语言考试题型和答案## 一、选择题(每题1分,共40分)1. C语言中,以下哪个是合法的标识符?- A. 2variable- B. variable2- C. variable-2- D. variable#2**答案:B**2. 在C语言中,以下哪个是整型数据?- A. 3.14- B. 'a'- C. 100- D. "Hello"**答案:C**3. 下列哪个选项是C语言中的逻辑运算符?- A. &&- B. ||- C. +=- D. -**答案:A**4. C语言中,以下哪个是正确的字符串字面量? - A. "Hello"- B. 'Hello'- C. "Hello", "World"- D. "Hello"**答案:A**5. 在C语言中,以下哪个是正确的函数声明?- A. int function();- B. int function int x;- C. int function(x int);- D. int function(int);**答案:D**## 二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型变量的关键字是______。
**答案:int**2. 在C语言中,表示逻辑“与”的运算符是______。
**答案:&&**3. C语言中,用于定义一个字符型变量的关键字是______。
**答案:char**4. C语言中,用于定义一个浮点型变量的关键字是______。
**答案:float 或 double**5. 在C语言中,用于定义一个数组的语法是:类型名数组名[数组大小];例如,定义一个整型数组a,大小为10,正确的声明是:______。
**答案:int a[10];**## 三、程序阅读题(每题5分,共10分)1. 阅读以下C语言程序段,并回答问题。
【上机题命题及答题要点】1、近年来江苏省高校上机题目难度有所下降。
本轮上机命题的难度系数及全国计算机等级考试二级C语言接近。
2、改错题通常有3~4个错误。
错误分为两大类,一类是语法出错,这类错误比较查错和容易修改,即在编译时报的错误。
另一类是结果出错,即程序的算法出错,这类错误需认真审题。
3、编程题必须掌握C语言的文件,应熟悉文件指针的定义,文件的打开及文件的输入输出。
编程题的固定框架。
必须记忆。
以C01的编程为例。
#include <stdlib.h> /*库函数exit(0)需要*/#include <stdio.h> /*定义文件指针时需要的头文件*/…………..{}void main(){ FILE *fp;所有数据类型的说明和定义if((fp=fopen("t:\\myf2.out","w"))==NULL){ printf("\nCan't open the file!"); exit (0);}函数调用(具体问题具体分析)结果输出printf("\nMy number is:120992340\n");fprintf(fp,"\nMy number is:1292340\n");fclose(fp);}4、必须熟悉常用算法。
5、江苏省高校计算机二级C语言上机编程题常考问题:字符串相关问题、素数相关问题、回文数相关问题、矩阵(二维数组)相关问题、特殊数问题(如,合数、真因子或质因子之和、水仙花数、亲密数、完数、数制转换、哥德巴赫猜想等)。
6、掌握文件输出操作标准形式。
【2013年3月江苏省等考上机真题解析】江苏省高等学校非计算机专业学生(C01)计算机基础知识和应用能力等级考试上机试卷二级C语言(试卷代号C01)(本试卷完成时间70分钟)一、改错题(16分)【程序功能】判断一个N×N方阵(N为奇数)是否为魔方阵。
江苏科技大学2011C++期末试卷(附答案)使用前注意保密江苏科技大学非计算机专业学生Visual C++ 程序设计语言期末考试试卷代号:VC02说明:1、本试卷为笔试题,含选择、填空、及编程三部分。
2、本试卷满分为100分,考试时间为120分钟。
3、所有答案必须写在答题纸上,否则不计成绩。
3、填空题,请注意空格号(不是题号)与答题纸上的编号对应。
4、答题纸上必须写明学号(含班级号)、姓名。
计算机基础教研室一、选择题(10×2=20分)1、设CH为字符型变量,则语句CH=CH+’e’-‘E’;的作用可能是:(1)。
A.将大写字母转换成对应的小写字母B.将字母CH转换成eC.将小写字母转换成对应的大写字母D.将字母CH转换成E2、设有说明语句“int a=4,b=5,c=6,d=7,m=1,n=1;”,则执行语句“c=(m=a>b)&&(n=c>d);”后,m和n的值分别为(2)。
A.1、1 B.1、0 C.0、1 D.0、03、下列数组的定义和使用中,正确的是(3)。
A.char a[20];a[20]=”Hello”;B.char a[20];a=”Hello”;C.int n=20;char a[n];D.char a[]=”Hello”;4、设类A为类B的基类,类B为类C的基类,并有如下定义:Aa1,*pa;B b1,*pb;C c1,*pc;则以赋值存在语法错误的是(4)。
A.pa=&b1 B.pb=&c1 C.A a2=&c1 D.pc=&b1;5、设有变量说明“int a=1,b=2;float x=1.5,y=1.2;”,下列语句正确的是(5)。
A.y=x%a; B.int(y)=a; C.x+y=a+b; D.a=x+y;6、对于下面的一组函数:void fun (int a, float x); // 函数1void fun (int a, int x); // 函数2void fun (float a, float x ); // 函数3void fun (float a, int x ); // 函数4void fun (int a[], int n); // 函数5void fun (int *p, int n); // 函数6以下说法不正确的是:(6)。
计算机二级c河北考试试题及答案一、单项选择题(每题2分,共20分)1. 在C语言中,以下选项中不是合法的变量名的是()。
A. _123B. intC. a_bD. 2abc答案:B2. 以下关于C语言中数组的描述,错误的是()。
A. 数组可以存储相同类型的元素B. 数组可以存储任意类型的数据C. 数组元素的下标从0开始D. 数组必须在编译时分配内存答案:B3. 在C语言中,下列哪个关键字用于定义函数()。
A. ifB. forC. intD. void答案:C4. 下列关于指针的描述中,正确的是()。
A. 指针可以存储任意类型的数据B. 指针本身不占用内存C. 指针可以存储变量的地址D. 指针可以作为函数的参数答案:C5. 在C语言中,以下关于文件操作的描述,错误的是()。
A. 文件操作需要包含头文件stdio.hB. 文件指针的类型是FILE*C. 文件操作函数fopen()用于打开文件D. 文件操作函数fclose()用于关闭文件答案:A6. 在C语言中,以下哪个运算符用于取模运算()。
A. %B. /C. *D. +答案:A7. 在C语言中,以下哪个关键字用于定义结构体()。
A. structB. unionC. enumD. typedef答案:A8. 在C语言中,以下关于函数的描述,错误的是()。
A. 函数可以返回任意类型的数据B. 函数可以没有返回值C. 函数可以有多个返回值D. 函数可以有多个参数答案:C9. 在C语言中,以下关于预处理指令的描述,错误的是()。
A. #include用于包含头文件B. #define用于定义宏C. #ifdef用于条件编译D. #undef用于取消宏定义答案:C10. 在C语言中,以下关于位运算的描述,错误的是()。
A. &表示按位与B. |表示按位或C. ^表示按位异或D. ~表示按位非答案:D二、填空题(每题2分,共10分)1. 在C语言中,定义一个整型变量a,其值为10,应该使用语句________。
2022年河北省邢台市全国计算机等级考试C语言程序设计真题二卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1. fscanf函数的正确调用形式是()A.fscanf(fp,格式字符串,输出表列);B.fscanf(格式字符串,输出表列,fp);C.fscanf(格式字符串,文件指针,输出表列),D.fscanf(文件指针,格式字符串,输入表列);2.有以下程序:#include<stdio.h>struct S{int a,b;)data[2]=10,100,20,200);main(){struct S p=data[l];printf("%d\n",++(p.a));}程序运行后的输出结果是()。
A.10 B.11 C.20 D.213.设有定义“struct { char mark[12] ; int num1; double num2;} t1, t2;”,若变量均已正确赋初值,则下列语句中错误的是()。
A.t1=t2;B.t2. num1=t1. num1;C.t2. mark=t1. mark;D.t2. num2=t1. num2;4. 若有说明语句:double*p,a;则通过scanf语句正确给输入项读人数据的程序段是( )。
A.*p=&a;scanf("%1f”,p);B.*p=&a;scanf("%f",p);C.p=&a;scanf("%",*p);D.p=&a;scanf("%1f",p);5.以下程序的输出结果是( )。
main{ char ch[3][4]={"123","456","78"),*p[3];int i;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123 456 780C.12345678D.1476.下列叙述中,不符合良好程序设计风格的是()。
江苏省高等高等学校非计算机专业学生
计算机基础知识和应用能力等级考试上机试卷(2009年秋)
二级C语言(试卷代号C02)
(本试卷完成时间70分钟)
一改错题(16分)
【程序功能】
函数dtoh实现将参数num的值表示为一个十六进制形式的字符串,并将该字符串存储在一个动态申请的存储区内,函数返回动态存储区的起始地址。
【测试数据及运行结果】
输入:1234
输出:4d2
含有错误的源程序
#include<stdio.h>
#include<stdlib.h>
char dtoh(unsigned num)
{ char digits[]=”0123456789abcdef”;
char *s; int n=0; unsigned un=num;
while(un)
{ n++; un/=16; }
s=(char*)malloc((n+1)*sizeof(char));
if(s==null)
{ printf (“Memory request failed!\n”);
exit(1);
}
s[n--]=”\0”;
while(num)
{ s[n--]=digits[num/16]; /*取一位十六进制数字字符*/
num/=16;
}
return s;
}
void main()
{ char *p; unsigned n;
scanf(“%u”,&n);
p=dtoh(n);
printf(“%s”,p);
free(p); getch();
}
【要求】
1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序
中的错误进行修改。
2.改错时,可以修改语句中的一部内容,调整语句次序,增加少量的变量说明或编译
预处理命令,但不能增加其他语句,也不能删去整条语句。
3.改正后的源程序(文件名myf1.c)保存在T:盘根目录共阅卷使用,否则不予评分。
二、编程题(24分)
【程序功能】
在给定的范围内查找并输出所有满足以下条件的整数对(a,b)及与(a,b)关联的反序数对(c,d):(1)a小于b:(2)a和b的十进制表示均是三位数且各位上的数字互不相同;(3)a的反序数(记作c)和b的反序数(记作d)也都是三位数并且a×b等于c×d。
例如,与整数对(302,406)关联的反序数对是(203,604),302×406=203×604,因此(302,406)是满足上述条件的整数对。
【编程要求】
1.编写函数int find(int x[][4],int m,int n)实现以下功能:若m和n的十进制表示不是三位数
则函数返回0。
否则,将取值在[m,n]范围内所有满足上述条件的整数对以及与这些整数对关联的反序数对保存到x指向的二维数组中,函数返回x数组中保存的数据行数。
2.编写函数main实现以下功能:声明一个100行4列的二维数组a,用a数组作实参调用
find函数在[300,450]范围内查找,将找到的满足上述条件的整数对及关联的反序数对保存到a数组。
按以下格式将a数组中数据输出到屏幕及文件myf2.out中。
最后将考生本人准考证输出到文件myf2.out中。
【测试数据与运行结果】
输出:
301*309=103*903 302*406=203*604 304*403=403*304 306*402=603*204
312*426=213*624 314*413=413*314 321*369=123*963 324*423=423*324
402*408=204*804 412*428=214*824
【要求】
1.源程序文件为myf
2.c,输出结果文件名myf2.out。
2.数据文件的打开、使用、关闭均使用C语言标准库中缓冲文件系统操作函数实现。
3.源程序文件和运行结果均需要保存T:盘根目录中供阅卷使用。
4.不要复制扩展名为obj和exe的文件到T:盘中。